1. Используя текстовый редактор интегрированной среды, откройте файл may.dat . Сравните полученные данные с результатом работы программы Primer_F1.
2.8.7 Считывание данных из типизированного файла
Типизированные файлы относятся к файлам прямого доступа (см. п. 2.8.1.), это связано с их строгой организацией. Как уже отмечалось, компоненты типизированного файла занимают одинаковый, строго регламентированный объем. При этом распологаются сплошным блоком и при организации доступа к ним не требуется хранения дополнительной информации о расположения каждого из них.
Рассмотрим основные процедуры и функции применяемые для считывания данных из типизированого файла.
Как и для текстового файла, перед работой с типизированным файлом необходимо: объявить идентификатор файла и задать тип данных, которые в данном файле находятся, связать реальный файл с именем (идентификатором) переменной, с которой мы будем работать в дальнейшем (см п. 2.8.5.).
Процедура reset (<Идентификатор файла>) – открывает файл для считывания и перемещает указатель к началу файла.
Для считывания данных из типизированного файла используется процедура read(), ее описание аналогична описанию процедуры read() для текстовых файлов. При работе данной процедуры, после считывания блока данных, указатель автоматически перемещается на следующую запись. Если попытаться выполнить процедуру считывания, когда указатель находится после последней записи, произойдет ошибка выполнения.
Для преодоления данной трудности можно использовать функцию FileSize().
Функция FileSize(<идентификатор файла>): longint, возвращает число компонентов файла. То есть, если нам надо считать все данные из типизированного файла надо выполнить процедуру считывания FileSize() раз. Приведем участок текста программы считывания данных из типизированного файла созданного программой PrimerF8.
Program PrimerF8;
Var
FileInput : file of integer;
I, Kolichestvo : integer;
Chislo : array [1..100] of integer;
Procedure Init;
begin
assign(FileInput,'may.dat');
reset(FileInput);
Kolichestvo:=FileSize(FileInput);
For i:=1 to Kolichestvo do
Read(FileInput,Chislo[i]);
Close(FileInput);
End;
В начале параграфа мы отметили, что типизированные файлы – файлы прямого доступа. То есть такие файлы, в которых для считывания данных, находящихся в любой части файла, нет необходимости предварительного считывания данных расположенных перед ними.
Для перемещения указателя считывания к нужным нам данным используется процедура Seek(). Она имеет следующий вид:
Достарыңызбен бөлісу: |