Как считывать определённые строки по позициям?
У меня есть файл в котором хранятся структурированные по позициям строки данных. Наглядный пример:
Собака Коли
Кот Виталика
Рыбка Саши
Вопрос состоит в следующем: каким образом считать строку с помощью её номера? К примеру мне нужно считать "Кот Виталика" который является третьей строкой в файле. Как можно реализовать считывание строки по её номеру в файле?
Ответы (2 шт):
Если строки не фиксированной одинаковой длины, то вариант один - читать файл подряд начиная с самого начала и считать строки, пока не дойдёте до нужной. Если бы строки были фиксированной длины, то можно было бы отпозиционироваться сразу на нужную позицию через seek.
Если проект учебный и длина файла небольшая - я бы просто прочитал весь файл в массив строк:
string[] content = File.ReadAllLines(fullFileName);
И для обращения к какой-то конкретной строке использовал бы индекс массива, например, вывод строки три (проверка на выход за пределы массива опущена):
Console.WriteLine(content[2]);
Я подобным образом в простеньких скриптах модифицирую файлы, а потом записываю обратно модифицированный массив:
File.WriteAllLines(fullFileName, content);
Этот подход не единственный, мне он нравится тем, что можно использовать linq.
И если у вас файл большой то лучше читать файл поблочно.