Типизированные файлы

Типизированные файлы состоят из машинных представлений чисел, символов и структур, из них построенных. Они хранят данные в том же виде, что и память ЭВМ. С помощью типизированных файлов можно осуществлять обмен данными только между дисками и рабочей памятью программы, но нельзя непосредственно вывести данные на экран ПК, принтер. Файлы могут быть заполнены данными в одной программе, а обрабатываться в другой.

Типизированные файлы определяют упорядоченные совокупности произвольного числа однотипных элементов с прямым (произвольным) и последовательным методом доступа.

Последовательный доступ состоит в том, что по файлу можно двигаться только последовательно, начиная с первого элемента, и, кроме этого, всегда существует возможность начать просмотр файла с его начала (аналог – магнитная лента).

Прямой (произвольный) доступ состоит в непосредственном поиске данных по заданному номеру или продвижении к заданному месту файла по номеру записи.

Файловый тип или переменную файлового типа можно задать с помощью ключевых слов file of и указания типа компонентов или в разделе описаний типов:

1) type fl = file of тип элементов;

var f1, f2 : fl ;

или в разделе описания переменных:

2)var f1, f2 : file of тип элементов;

Например:

type data = record day : 1..31;

month : 1..12;

year : integer

end;

fil1 = file of integer;

var f1, f2: file of data;

fn: fil1;

С переменной файлового типа связано понятие текущего указателя файла. При определении файловой переменной рождается скрытая переменная – текущий указатель. Текущий указатель показывает на некоторый конкретный элемент файла, с которым в данный момент можно производить действия, выполняемые поэлементно. В результате совершения операций текущий указатель может перемещаться, настраиваясь на тот или иной элемент файла. Все элементы считаются пронумерованными; начальный элемент имеет нулевой номер.

Все операции могут производиться лишь с элементами файлов. Нет таких операций, которые бы работали с целыми файлами, в том числе операций сравнения и операций присваивания значения одной файловой переменной другой файловой переменной. Например, не имеют смысла выражения:

f1:= f2; f1 > f2;.