Компонентный или типизированный файл - это файл с объявленным ти- пом его компонент. Компонентные файлы состоят из машинных представле- ний значений переменных, они хранят данные в том же виде, что и па- мять ЭВМ.
Описание величин файлового типа имеет вид:
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.