Закрыть файл.
Рассмотрим более подробно 3 пункт, мы открыли файл на запись, чтение или добавления данных. Теперь надо добавить данные, за это отвечает уже знакомая нам процедура write, writeln. Чтобы записать в файл например стоку, надо записать write(f, 'строка'); теперь в файл f запишется строка, разумеется там может быть любая переменная. Если записать writeln(f, 'строка'); то запишется строка и файловый указатель перейдёт на следующую строку.
Для чтения данных из файла предназначена тоже знакомая на процедура read, readln. Чтобы считать ту же строку достаточно написать read(f, s); где s – строковая переменная.
Нетекстовые файлы.
Текстовый файл, это самый простой файл для хранения данных, но хочется записать в файл разные данные, будь то число, строка; в общем любой тип. Чтобы определить файл любого иного типа отличного от текстового используют следующий синтаксис:
идентификатор = FILE OF тип-компонента;
Тип — компонента может быть простым числом (integer), структурным типом (Массив), или типом определённым пользователем, например запись.
Рассмотрим тип запись:
TYPE
GOROD = REDORD
ID : INTEGER;
PL : REAL;
NAME : STRING;
END;
Описали тип запись, город. Ниже объявляем переменную файла.
GOROD_F = FILE OF GOROD;
после этого в секции VAR можно объявлять непосредственно файл.
VAR
F : GOROD_F; объявили файл
REC : GOROD; объявили запись
После записи данных в файл его уже нельзя прочитать с помощью текстового редактора, т. к. данные в нём хранятся в двоичной форме, это кстати ускоряет запись и чтение данных из файла. Данные файлы не имеют строк, поэтому при работе с файлом нельзя использовать операторы readln, writeln. Запись и чтение файлов происходит с помощью операторов:
read – read(f, rec); читаем данный из файла в запись REC
write – write(f, rec); записываем данные из записи REC в файл