while Not EOF(FileIn ) do
begin
{увеличение значения счетчика на единицу}
inc(Kolichestvo);
{считывание элементов массива}
read (FileIn, Chislo [i]);
end;
{закрытие файла}
close(FileIn);
end;
Переменная Kolichestvo служит для подсчета количества записей считанных из файла. Эту переменную желательно объявить как глобальную. Массив Chislo, также объявим в блоке описания глобальных переменных:
Var
Chislo : array[1..100] of integer;
Kolichestvo : byte;
Для проверки правильности работы по считыванию данных из файла с неизвестным количеством записей. Выведем массив считанных данных на экран, в столбик:
procedure exi;
var
i :byte;
begin
for i:=1 to Kolichestvo do
begin
writeln (Chislo [i]);
end;
end;
Если вы правильно оформите текст оставшейся части программы, то получите программу, которая считывает данные из текстового файла, количество записей, в котором заранее не известно, но не превышает 100 (связанно с ограничением которое мы наложили на количество элементов массива). Более того, данная программа определит количество записей находящихся в данном файле и выведет эти записи на экран.
Теперь рассмотрим, как можно считать данные из двумерного массива. Как уже отмечалось, одним из условий считывания есть отсутствие признака конца файла. Но при записи двухмерного массива, его элементы расположены и по строкам, и в столбцах. Таким образом, считывание данных должно производиться пока не достигнут конец файла, по строкам. Когда данные в строке будут полностью считаны, программа должна начать считывать новую строку. Рассматривая свойства текстового файла, отмечалось, что каждая строка оканчивается признаком (кодом) конец строки. Для определения этого признака используется стандартная процедура EOLn(NameVar)_._EOLn()'>EOLn(NameVar). EOLn(), сокращенное от английского End Of Length (конец строки). В скобках указывается имя переменной связанной с конкретным файлом процедурой assign() процедура EOLn(NameVar) имеет значение - False(Ложь) если конец строки не достигнут, и значение - True(Истина) если достигнут конец строки. Таким образом, считывание данных в строке будет осуществляться пока условие Not EOLn(NameVar) будет истинным, то есть, пока не будет достигнут конец строки. В этом случае текст подпрограммы ввода данных будет выглядеть следующим образом:
procedure Init;
var
i,j : byte;
{объявление имени переменной как текстового файла}
FileIn : text;
begin
{связь переменной с конкретным именем файла}
assign (FileIn, ‘mayFile5.in’);
{открытие файла для чтения}
reset(FileIn);
{установка счетчика строк в начальное значение}
KolichestvoStrok:=0;
{считывание элементов массива по строкам}
Достарыңызбен бөлісу: |