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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 02.03.2013, 23:23   #1
803
Пользователь
 
Регистрация: 13.02.2012
Сообщений: 89
По умолчанию Работа с файлами C#

Здравствуйте. Помогите пожалуйста в таком вопросе. У меня есть файл я считываю с него информацию и вывожу в textBox и там произвожу с ним действие и уже потом записываю обратно в выходной файл. Вопрос заключается в том как можно сделать чтобы не записывать в textBox, а как то сразу работать с ним. Подскажите как это сделать. Заранее спасибо.
Вот мой код
Код:
private void button1_Click(object sender, EventArgs e)
        {
            StreamReader streamReader = new StreamReader("test.txt"); //Открываем файл для чтения
            string str = ""; //Объявляем переменную, в которую будем записывать текст из файла

            while (!streamReader.EndOfStream) //Цикл длиться пока не будет достигнут конец файла
            {
                str += streamReader.ReadLine(); //В переменную str по строчно записываем содержимое файла
            }
            textBox1.Text = str;
        }

        private void textBox1_TextChanged(object sender, EventArgs e)
        {

        }

        private void button2_Click(object sender, EventArgs e)
        {
            string str1 = textBox1.Text, str = "", ch = "";
            int i, k, j;
            for (i = 0; i < str1.Length; )
            {
                ch = str1.Substring(i, 1);
                k = 0;
                if (i == str1.Length - 1)
                {
                    str += Convert.ToString(ch);
                    break;
                }
                if (str1.Substring(i + 1, 1) == ch)
                {
                    for (j = i; j < str1.Length; j++)
                    {
                        if (str1.Substring(j, 1) == ch)
                        {
                            k++;
                        }
                        else
                            break;
                    }
                    i = j;
                }
                else
                    i++;
                if (k != 0)
                    str += Convert.ToString(k) + Convert.ToString(ch);
                else
                    str += Convert.ToString(ch);

            }
            SaveFileDialog saveFileDialog = new SaveFileDialog();
            saveFileDialog.Filter = "Текстовый документ (*.txt)|*.txt|Все файлы (*.*)|*.*";

            if (saveFileDialog.ShowDialog() == DialogResult.OK)
            {
                StreamWriter streamWriter = new StreamWriter(saveFileDialog.FileName);
                streamWriter.WriteLine(str);
                streamWriter.Close();
            }
        }
Просто удалить textBox с панели не катит я уже побывал.
803 вне форума Ответить с цитированием
Старый 03.03.2013, 09:24   #2
phomm
personality
Старожил
 
Аватар для phomm
 
Регистрация: 28.04.2009
Сообщений: 2,882
По умолчанию

Использовать массив строк string[] или лист List<string> , в него грузить из файла, потом передавать на обработку, потом записывать в файл.
Грузить можно с помощью System.IO.File.ReadAllLines а писать WriteAllLines.
phomm вне форума Ответить с цитированием
Старый 03.03.2013, 11:48   #3
803
Пользователь
 
Регистрация: 13.02.2012
Сообщений: 89
По умолчанию

Спасибо за ваш ответ. Я наверное не понимаю ничего но все же. Я ведь из файла загружаю в string
Код:
str = ""; //Объявляем переменную, в которую будем записывать текст из файла
в строку. А как дальше работать я не понимаю.
803 вне форума Ответить с цитированием
Старый 03.03.2013, 12:45   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Вот что Фом имел ввиду:
Создаешь глобальную переменную:
Код:
             List<string> arrstr = new List<string>();
Код:
...
            StreamReader streamReader = new StreamReader("test.txt"); //Открываем файл для чтения

            while (!streamReader.EndOfStream) //Цикл длиться пока не будет достигнут конец файла
            {
                //str += streamReader.ReadLine(); //В переменную str по строчно записываем содержимое файла
                arrstr.Add(streamReader.ReadLine());
            }
И
Код:
 arrstr[номер элемента] уже используй в цикле обработки
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 03.03.2013, 15:52   #5
803
Пользователь
 
Регистрация: 13.02.2012
Сообщений: 89
По умолчанию

Спасибо за ответ. Я так понял тут так просто не переделаешь с str на arrstr[номер элемента] уже используй в цикле обработки?
803 вне форума Ответить с цитированием
Старый 03.03.2013, 16:30   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
так просто не переделаешь
Во-первых это не нужно. Во-вторых str.split() тебе в помощь, но нужно чтоб в строке были разделители, поэтому это тебе не нужно.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа с файлами с++ winst2014 Общие вопросы C/C++ 2 12.12.2012 22:58
РАбота с файлами в VB Demina_Ksenia Помощь студентам 0 27.05.2011 17:40
Работа с файлами С++/С yuliyayuliya Помощь студентам 4 14.03.2011 12:20