Компонентный или типизированный файл - это файл с объявленным ти-
пом его компонент. Компонентные файлы состоят из машинных представле-
ний значений переменных, они хранят данные в том же виде, что и па-
мять ЭВМ.
Описание величин файлового типа имеет вид:
type M= File Of T;
где М - имя файлового типа, Т - тип компоненты. Например:
type
FIO= String[20];
SPISOK=File of FIO;
var
STUD, PREP: SPISOK;
Здесь STUD, PREP - имена файлов, компонентами которых являются
строки.
Описание файлов можно задавать в разделе описания переменных:
var
fsimv: File of Char;
fr: File of Real;
Компонентами файла могут быть все скалярные типы, а из структури-
рованных - массивы, множества, записи. Практически во всех конкретных
реализациях языка ПАСКАЛЬ конструкция "файл файлов" недопустима.
Все операции над компонентными файлами производятся с помощью
стандартных процедур:
Reset, Rewrite, Read, Write, Close.
Для ввода - вывода используются процедуры:
Read(f,X);
Write(f,X);
где f - имя логического файла, Х - либо переменная, либо массив,
либо строка, либо множество, либо запись с таким же описанием, какое
имеет компонента файла.
Выполнение процедуры Read(f,X) состоит в чтении с внешнего уст-
ройства одной компоненты файла и запись ее в X. Повторное применение
процедуры Read(f,X) обеспечит чтение следующей компоненты файла и за-
пись ее в X.
Выполнение процедуры Write(f,X) состоит в записи X на внешнее уст-
ройство как одной компоненты. Повторное применение этой процедуры
обеспечит запись X как следующей компоненты файла.
Для работы с компонентными файлами введена расширенная форма опе-
раторов ввода и вывода:
Read(f,X1,X2,...XK)
Write(f,X1,X2,...XK)
Здесь f - компонентный файл, а переменные Х1, Х2,...ХК должны
иметь тот-же тип, что и объявленный тип компонент файла f.