Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > Общие вопросы .NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.01.2010, 04:33   #1
Game1024
 
Регистрация: 20.11.2009
Сообщений: 2
По умолчанию Запись и чтение параметров изображения в текстовый файл

Здравствуйте.
Создаю приложение, которое способно загружать изображение, изменять его параметры путем перемещения скроллов, сохранять параметры в текстовый файл и считывать их оттуда.



Код:
        private void открытьФайлПараметровToolStripMenuItem_Click(object sender, EventArgs e)
        {
            System.IO.Stream myStream;
            OpenFileDialog openFileDialog = new OpenFileDialog();
            openFileDialog.Filter = "Txt files (*.txt)|*.txt|All files (*.*)|*.*";
            openFileDialog.FilterIndex = 1;
            openFileDialog.RestoreDirectory = true;
            if (openFileDialog.ShowDialog() == DialogResult.OK)
            {
                if ((myStream = openFileDialog.OpenFile()) != null)
                {
                    System.IO.StreamReader rw = new System.IO.StreamReader(myStream);
                    string line;
                    while ((line = rw.ReadLine()) != null)
                    {
                        listBox1.Items.Add(line);
                        //Если в строке есть параметр Path, то извлекаем его значение и загружаем изображение
                        if (line.IndexOf("Path=") != -1)
                        {
                            pictureBox1.Image = System.Drawing.Image.FromFile(line.Substring(5));
                            image_path = line.Substring(5);
                            pictureBox1.SizeMode = PictureBoxSizeMode.StretchImage;
                            hScrollBar2.Maximum = pictureBox1.Height * 2;
                            hScrollBar2.Value = pictureBox1.Height;
                            textBox2.Text = pictureBox1.Height.ToString();
                            hScrollBar1.Maximum = pictureBox1.Width * 2;
                            hScrollBar1.Value = pictureBox1.Width;
                            textBox1.Text = pictureBox1.Width.ToString();
                            aspect = Convert.ToDouble(pictureBox1.Image.Width) / Convert.ToDouble(pictureBox1.Image.Height);

                            pictureBox1.Width = hScrollBar1.Value;
                            textBox1.Text = pictureBox1.Width.ToString();
                            pictureBox1.Height = hScrollBar2.Value;
                            textBox2.Text = pictureBox1.Height.ToString();
                        }
                        if (line.IndexOf("Width=") != -1)
  

        private void hScrollBar1_Scroll(object sender, ScrollEventArgs e)
        {
             pictureBox1.Width = hScrollBar1.Value;
             textBox1.Text = pictureBox1.Width.ToString();
                        
        }

        private void hScrollBar2_Scroll(object sender, ScrollEventArgs e)
        {
             pictureBox1.Height = hScrollBar2.Value;
             textBox2.Text = pictureBox1.Height.ToString();

        }

        private void сохранитьПараметрыToolStripMenuItem_Click(object sender, EventArgs e)
        {
            System.IO.Stream myStream;
            SaveFileDialog saveFileDialog = new SaveFileDialog();
            saveFileDialog.Filter = "Txt files (*.txt)|*.txt|All files (*.*)|*.*";
            saveFileDialog.FilterIndex = 1;
            saveFileDialog.RestoreDirectory = true;
            if (saveFileDialog.ShowDialog() == DialogResult.OK)
              {
               if ((myStream = (System.IO.FileStream)saveFileDialog.OpenFile()) != null)
                 {
                  System.IO.StreamWriter sw = new System.IO.StreamWriter(myStream);
                  //сохраняем параметры
                  sw.WriteLine("Path = C:\arbuz.txt");
                  sw.WriteLine("Width = {0}",pictureBox1.Width.ToString());
                  sw.WriteLine("Height = {0}", pictureBox1.Height.ToString());
                  sw.WriteLine("Top = {0}", pictureBox1.Top.ToString());
                  sw.WriteLine("Left = {0}",  pictureBox1.Left.ToString());
                  sw.WriteLine("SaveAspect = {0}", aspect.ToString());
                  sw.Close();
Загвоздка произошла в функции для чтения файла параметров.
Код:
// Если в строке есть параметр Width 
if (line.IndexOf("Width=") != -1)
// то читаем его и назначаем

 {
   }
//Если в строке есть параметр Height, то читаем его и назначаем
и т.д.
Каким образом прочитать значение Width из файла назначить его?

Также где-то должен быть дублирующаяся часть кода (вероятно настройки скроллов Width.Maximum, Height.Maximum, Height.Value, Width.Value, aspect , pictureBox1.SizeMode)

Буду благодарен за ответы.
З.Ы.Половину кода опустил дабы уменьшить размер сообщения

Последний раз редактировалось Sazary; 15.01.2010 в 05:15.
Game1024 вне форума Ответить с цитированием
Старый 14.01.2010, 10:36   #2
Hollander
Участник клуба
 
Аватар для Hollander
 
Регистрация: 03.05.2007
Сообщений: 1,189
По умолчанию

Варианты есть разные, я бы использовал сериализацию. Об этом много в нете, да и тут обсуждалось. Например тут: http://www.programmersforum.ru/showthread.php?t=68013

Последний раз редактировалось Hollander; 14.01.2010 в 12:12.
Hollander вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Чтение и запись параметров в xml BioHEX Общие вопросы Delphi 2 15.01.2010 04:16
Чтение и запись в файл. Ky3Heu, Помощь студентам 0 01.01.2010 11:24
Чтение и запись в файл deagle05 Общие вопросы C/C++ 3 22.12.2009 00:11
Запись в текстовый файл из ComboBox Siluet Общие вопросы Delphi 11 13.12.2009 14:04
Запись в текстовый файл Xardas Общие вопросы Delphi 9 20.01.2008 13:22