Помощь - Поиск - Пользователи - Календарь
Полная версия: Чтение файла в массив
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
camac
Бодрого дня, господа знатоки.
Придумал себе такую проблему - чтобы выборочно файл читать не как все, а потом выводить это на экран.
А "загоняя" его построчно в массив и затем в нужный момент выводить необходимые строки (индексы массива).

Так вот вопрос - целесообразно ли это при количестве строк больше 1 500?
К стати, я сделал вот так:

program proba;
uses crt;
var
f: text;
mas:array [1..25] of string;
a,b,i:integer;
begin
repeat
write('ввести а: '); readln(a);
write('ввести b: '); readln(b);
assign (f, 'inf.txt');
reset (f);
for i:=1 to 25 do
readln(f,mas[i]);
for i:=a to b do
writeln(mas[i]);
close (f);
until (a=0) or (b=0);
end.

Может и подскажете как это правильнее и красивее сделать?
Федосеев Павел
Текстовые файлы достаточно удобно считывать в переменную класса TStringList.

Если файл очень большой, то там применяют ещё какие-то манипуляции с отображением файла на память на основе классов. Это отображение поддерживается на уровне современных ОС.

Пример с TStringList Из файла f переписать текст в файл g, сделав в нем все строки фиксированной длины d, выравнивая их по ширине.
camac
Я так и делал. Мне вот тут кучу вариантов накидали, из которых я потом все сделал.
Но, почему-то кажется, что с массивом будет удобней.
Федосеев Павел
Смотря какая задача. Смотря какой у вас сейчас уровень.

Задачу можно решить одним способом - решая её. Как решите - так и останется. Я одну задачку делал считывая построчно, и анализируя строку. Потом через 2 лет решил добавить функционал и понял, что удобнее через TStringList - неделю переделывал, но стало удобнее.

Как сделаете - так и будет. Потом захотите - переделаете на другом уровне.
camac
Уровень у меня сейчас нулевой. Я изучаю паскаль по книжкам и форумам сугубо для себя.
Я гуманитарий и никогда не был программистом (мозги не в ту сторону от программирования).
Решил в свои под 60 воплотить мечтания детские, да и разминка для мозга. Не телевизор же смотреть да (в скором времени) с бабками на лавочке...

А в данном конкретном случае нужно просто из разных частей программулины выводиь на экран различную информацию из файла.
Сначала, например, с 1 по 10-ю строчку. Затем с 20-й по 22-ю. После с 50-й по 72 и т. д. (цифры просто с потолка, главное смысл моих телодвижений).
С помощью TStringList я сделал функцию и вызываю ее по мере надобности, подставляя нужное. А сейчас озадачился делать то же, но с помощью массива.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.