@electronik777

Как прочитать файле последовательно с нужного номера строки?

Как прочитать файле последовательно с нужного номера строки. Нахожу первую строку для чтения так
while ((line = text.ReadLine()) != null)
            {
                if (line.Contains("Накладная: " + docNum))
                {
                    System.Console.WriteLine(line);
                    System.Console.WriteLine("There were {0} lines 1.", counter);
                    counter1n = counter;
                    System.Console.WriteLine(line);   
                }
                counter++;
            }

В counter1n - строка с которой нужно читать дальше построчно, пока
line.Contains("Дата отгрузки")

Делала через for , но что то не получилось. Подскажите пожалуйста кто делал такое.
  • Вопрос задан
  • 112 просмотров
Решения вопроса 1
Лично мне не нравится идея жёстко привязываться к номерам строк и ожидать, что после строки с определённым содержимым будут идти строки с нужными даннми.

Мне кажется, вы не совсем правильно подходите к вопросу.
Что это за формат файла? Может его вообще надо парсить иначе?
Если это вы сами придумали так обмениваться данными, то стоит посмотреть в сторону более структурированных форматов, типа JSON, YAML и XML.

Если всё-же надо именно по строкам читать, то имеется: File.ReadAllLines и StreamReader.ReadLine
В среднем это должно выглядеть примерно так:
var lines = EnumerateLines(stream); // Некоторый наш метод, который превращает стрим в поток строк
var expectedLine = $"Накладная: {docNum}";
var dataLines = lines.SkipWhile(line => !line.Contains(expectedLine));
var data = ParseLines(dataLines); // Некоторый наш метод, который парсит данные


PS: Называйте переменные нормально, а не counter1n и давайте весь код, а то по вашему примеру не ясно, где вообще эта переменная объявлена и как она используется.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы