none
C#: Чтение различных строк из текстового файла. RRS feed

  • Вопрос

  • Добрый день!

    Подскажите, пожалуйста, как организовать чтение текстового файла при следующих условиях:

    1. Файл содержит письма, разделенные строкой "-----------------------------".

    2. Нужно прочитать до этой строки, подняться на 4 строки выше, считать нужное в переменную.

    3. Спуститься на 1 строку ниже, считать в переменную.

    Не могу понять как перемещаться по файлу.

Ответы

Все ответы

  • Читаем из файла построчно, занося в буфер, которым может выступать массив, список. Как только считали из файла строку-якорь (--------------) - выбираем из буфера строки ранее считанные (4 строки выше, значит индекс = x-4 , но это уже зависит от реализации).
  • Вряд ли файл имеет гигабайтные размеры, поэтому читаем его целиком в память, например, с помощью File.ReadAllLines. А потом работаем с массивом строк.
  • Все сказанное выше верно. Можно эту задачу решить многими способами. Все зависит только от размера файла. При любом случае считывается все в массив-список и с ним работаешь.

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

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

  • Думаю ответ где-то рядом:

    Дональд Кнут - Искусство программирования в 3-х томах.

    Никлаус Вирт - Алгоритмы и структуры данных.


  • Спасибо, попробую.