Member 13560731 Ответов: 1

Я хочу прочитать текстовый файл до первой пустой строки в нем, а затем удалить те строки, которые я только что прочитал.


Я хочу прочитать текстовый файл до первой пустой строки в нем, затем показать его в текстовом поле, а затем удалить количество строк до пустой строки, которые я только что прочитал из текстового файла.

Пожалуйста, помогите мне решить мою проблему.
Вот мой код. Используя этот код, я могу прочитать только одну строку текста за один раз, а затем удалить эту строку. Но я хочу прочитать несколько строк текста одновременно до пустой строки в моем текстовом файле, а затем удалить эти строки.

Что я уже пробовал:

string line = null;

                try
                {
                    StreamReader sr = new StreamReader(fileNameAndPath);
                    line = sr.ReadLine();
                    Clipboard.SetText(line);
                    textBox1.Text = line;
                    sr.Close();

                    if (line == null || line == "")
                    {
                        //To remove the empty line from the text file
                        var file = new List<string>(File.ReadAllLines(fileNameAndPath));
                        file.RemoveAt(0);
                        File.WriteAllLines(fileNameAndPath, file.ToArray());
                    }
                }
                catch
                {
                    MessageBox.Show("Text file is empty");
                }

PIEBALDconsult

Неразумный. Зачем вы хотите это сделать?

Dave Kreskowiak

Вы должны читать строку за строкой, пока не будет выполнено ваше условие (ваша пустая строка), а затем вы должны создать новый файл с временным именем файла, считывая каждую строку из исходного файла и записывая ее в файл назначения. Когда вы пишете последнюю строку файла, закройте файлы, удалите исходный файл и переименуйте временный файл в исходное имя файла.

Member 13560731

Спасибо, сэр, за ваш комментарий. Я разрабатываю какое-то программное обеспечение, и я не могу решить эту часть в своем программном обеспечении. Вот почему я спрашиваю об этом.

1 Ответов

Рейтинг:
1

Patrice T

Цитата:
Используя этот код, я могу прочитать только одну строку текста за один раз, а затем удалить эту строку.

И это хорошо, потому что именно это и должен делать этот код.
Ваш код нужно полностью переписать.

Во-первых, считайте все строки файла в список:
var file = new List<string>(File.ReadAllLines(fileNameAndPath));

затем сканируйте каждую строку, пока не найдете пустую.
как только вы узнаете позицию, удалите то, что вы хотите удалить.


Member 13560731

большое спасибо, сэр, за ваш ответ.
Как я могу тогда искать пустую строку после прочтения текстового файла
и потом, как я удаляю те строки, которые прочел.