Типизованный файл — структурированный тип данных, состоящий из последовательности компонент одного типа и одной длины.
Число компонент файла (размер файла) не указывается (не фиксируется) при определении файла.
Файл, не содержащий ни одной компоненты — пустой файл.
Формат описания:
1-ый способ:
Type
имя_типа_файла = File ofтип_компонент;
Var
имя_переменной_файла:имя_типа_файла;
2-ой способ:
Var
имя_переменной_файла: File ofтип_компонент;
Тип_компонент — любой стандартный или ранее определенный, простой или структурированный тип, за исключением File и Object. На практике чаще всего тип_компонент — тип запись (т.к. задачи требуют использования данных разных типов, а синтаксис требует использования компонент одного типа и одной длины).
Пример:
Type
StrVed= Record
TabNom:Integer;
FIO:String [ 30 ];
Oklad:LongInt
End ;
TypeVed = File ofStrVed;
Var
Vedomost: TypeVed;
Переменные файлового типа нельзя использовать как обычные переменные:
· им нельзя присваивать значения
· над ними нельзя выполнять никакие операции
· их нельзя использовать в выражениях
Их можно использовать только для выполнения операций над файлами (чтение, запись, удаление и т.д.), т.к. файл хранится на внешнем носителе, а данные из него по мере необходимости считываются в оперативную память для обработки (или наоборот).
При каждом описании новой файловой переменной автоматически вводится дополнительная переменная такого же типа, что и тип компонент файла. Она называется буферной переменной файла (указателем файла). При чтении из файла или при записи в файл этот указатель перемещается к следующей компоненте файла и делает ее доступной для обработки. Указатель файла также не может быть использован как обычная переменная.
В Паскале доступ к информации в файлах осуществляется с помощью файловых переменных. Вначале файловая переменная должна быть связана с конкретным файлом, затем файл должен быть открыт для чтения или записи. После работы с файлом, он (как правило) должен быть закрыт — это обязательно для файла, в который производилась запись.
При работе с файлами автоматически проверяются ошибки ввода/вывода (I/O). Это производится по умолчанию (если не были изменены установки) или с помощью директивы компилятора {$I+}. Проверку можно отключить: {$I-} и контролировать ввод/вывод с помощью функции IOResult.
Работа с файлами осуществляется с помощью процедур и функций (ниже F — файловая переменная).