Каждому файлу ставится в соответствие уникальная файловая переменная. Кроме того, обычными программными средствами нельзя создать программы, позволяющие взаимодействовать с устройствами ввода-вывода, кроме терминалов пользователя. Своеобразным «окном» между программами и внешними устройствами является файловая переменная. Поэтому в каждой программе, где предусматривается взаимодействие с устройствами ввода-вывода, организуется определённым образом логическая связь устройства ввода-вывода с файловой переменной.
Пример:
Type ZAP = Record
FIO: array [1..10] of char;
God: Integer
end; { of Record }
F = File of ZAP;
Тогда любая переменная типа F – это последовательный файл, состоящий из записей. Каждая запись имеет 2 поля: FIO (фамилия) и God (год рождения).
Переменные файлового типа, как и обычные переменные, описываются в разделе переменных: Var C: F;
С переменной С автоматически связана некоторая буферная переменная, относящаяся к типу компонентов файла и представляющая собой своеобразное «окно», через которое можно просматривать или записывать очередные компоненты. В любой момент доступен только один компонент файла – тот, что виден через буферную переменную.
С каждой файловой переменной связано понятие текущего указателя, это некоторая скрытая переменная, означающая (или указывающая) конкретный элемент файловой структуры. Все элементы файла считаются пронумерованными, начиная с нулевого.
Описание файла в разделе описания переменных:
Var Myfile: File of Integer;
Это означает, что в прграмме под файловым именем Myfile понимается неопределённое количество целых чисел, которые в виде физического файла могут располагаться на некотором внешнем уровне.
С каждым элементом последовательного файла тоже связано понятие текущего указателя. Поскольку все действия с данным файлом связаны с его элементами, необходимо знать, какой именно элемент файла подвергается обработке. Для этого используется текущий указатель.
Если программа взаимодействует с внешними файлами (хранимыми на диске), то файлы должны быть описаны в программе либо явно в разделе переменных Var, либо с использованием раздела типов Type.
Var имя файла: File of базовый тип
Пример:Var FT: File of char; (* файл символьных данных *)
Finp: File of real; (* файл действительных данных *)
М: File of integer; (* файл целых данных * )
Файлы символьных данных называются текстовыми файлами.
Определение данных с использованием раздела описания типов Type делает программу более универсальной и упрощает отладку программы.
Type имя типа = File of базовый тип;
Var имя переменной: имя типа;
Пример:Type T = File of Char;
Var FT: T;
Здесь Т – введённое нами имя типа.
Пример описания файловых типов и переменных:
Type SS = file of Char;
Person = record
name: string [20];
adress: string [25];
sex: ( man, woman );
day: 1..31;
month: 1..12;
year: 1900..2000
end;
Var F1, F2: SS;
Table: file of string [50];
Base: file of person;
Data: file of integer;
Файловые переменные имеют специфическое применение. Над ними нельзя выполнять никакие операции (присваивать значение, сравнивать и т.д.). Их можно использовать лишь для выполнения операций с файлами (чтения, записи, удаления файла и т.д.). Кроме того, через файловую переменную можно получить информацию о конкретном файле (тип, параметры, имя файла и т.д.).