Как указать, с чего начать чтение в файле при использовании StreamReader? - PullRequest
0 голосов
/ 26 февраля 2009

Как указать, с чего начать чтение в файле при использовании StreamReader?

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

Допустим, содержимое файла выглядит следующим образом:

// song list.
// junk info.
1. Song Name
2. Song Name
3. Song Name
4. Song Name
5. Song Name
6. Song Name

Как бы я управлял потоковым считывателем, скажем, с №2? Кроме того, как я мог также контролировать, где заставить это прекратить читать подобным разделителем как в # 5?

Редактировать: Под разделителем я имею в виду способ заставить StreamReader начать чтение с ('2.')

Ответы [ 3 ]

1 голос
/ 26 февраля 2009

Вы пытаетесь десериализовать файл в какой-либо объект в памяти? Если это так, вы можете просто проанализировать весь файл, используя ReadLine или что-то подобное, сохранить каждую строку, а затем получить к ней доступ через структуру данных, такую ​​как KeyValuePair<int, string>.

Обновление: ок ... С новой информацией, я думаю, у вас есть два варианта. Если вы смотрите на чтение, пока не найдете совпадение, вы можете Peek(), проверить, является ли персонаж тем, кого вы ищете, а затем Read(). Кроме того, если вы ищете заданную позицию, вы можете просто Read() столько символов и выбросить возвращаемое значение.

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

Надеюсь, это поможет ...

1 голос
/ 26 февраля 2009

Если файл содержит новые разделители строк, вы можете использовать ReadLine для чтения строки за раз.

Таким образом, чтобы начать чтение со строки № 2, вы должны прочитать первую строку и сбросить, а затем прочитать строки до строки № 5.

0 голосов
/ 26 февраля 2009

Что ж, если содержимое представляет собой простой текст, вы должны использовать метод ReadLine StreamReader.

http://msdn.microsoft.com/en-us/library/system.io.streamreader.readline.aspx

-Oisin

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...