Задать вопрос
@Sushkov
">alert("yohoho")

Как через StreamReader считать строку с определенной позиции?

Использую многопоточность и мне нужно считывать из фала строки по очереди, грузить в память плохо. Как это сделать? У меня пока только 1 вариант, каждый раз пробегать циклом до нужного элемента. Можно ли как-то лучше сделать?
  • Вопрос задан
  • 549 просмотров
Подписаться 1 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Учебный центр IBS
    SDP-030_PRG Продвинутая разработка в Microsoft .NET
    1 неделя
    Далее
  • Ulearn.me
    Проектирование на языке C#
    1 неделя
    Далее
  • Ulearn.me
    Основы программирования на примере C#. Часть 2
    1 неделя
    Далее
Пригласить эксперта
Ответы на вопрос 2
Nipheris
@Nipheris Куратор тега C#
1) первым проходом строим "индекс" - сохраняем в списке начала всех строк (в смысле, номер байта в потоке);
2) дальнейшие чтения делаем с помощью индекса;

Это будет быстрее постоянного прохода заново с начала файла. При построении индекса весь файл грузить в память не нужно, хотя понятно, что надо оценить размер этого индекса относительно количества строк и средней длины строки.
Ответ написан
Комментировать
@VZVZ
Reverse-Engineer, Software Developer, Architect
StreamReader хз, а BinaryReader - сто пудов может. Обычно такая функция называется seek.
Только она задает не строку, а положение каретки.

Может, лучше готовую БД применить? В них тот же принцип как раз.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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