Типизированный файл - это файл, состоящий из последовательности элементов (называемых компонентами) одного типа. Количество компонентов файла при задании файла не ограничивается.
Так как все компоненты файла имеют одинаковую "длину", то позиция каждого компонента в файле может быть вычислена.
Длиной файла называется число находящихся в нём компонентов. Пустым файлом называется файл, не содержащий компонентов. Длина пустого файла равна нулю. Общий вид описания файлового типа:
type R=File of TC,
где: File (от англ. файл), of (от англ. из) - служебные слова; R - идентификатор типа; TC - тип компонентов (не может быть типом File).
Отметим, что не допускается использование файловых переменных в операторах присваивания и в выражениях.
В каждый момент времени доступен только один компонент файла (при этом говорят, что на этот компонент установлен указатель файла). Следовательно, читать файл можно только последовательно по одному компоненту. Поэтому рассматриваемые файлы называются файлами последовательного доступа (или последовательными файлами).
Над файлами можно выполнять два явных вида действий:
Создание файла. Оно выполняется в результате добавления новых компонент в конец первоначально пустого файла. В процессе создания новые значения разрешается записывать только в конец файла;
Просмотр файла. Он выполняется в результате последовательного продвижения по файлу, начиная с его начала. При этом в каждый момент времени доступен лишь один компонент файла. В процессе просмотра файла изменять значения компонентов на новые запрещается.
Начать писать в файл можно только с самого его начала, дописывая новые компоненты последовательно одну за другой; для чтения также надо начинать просмотр файла с самого начала. Вследствие такой организации на одном просмотре файла нельзя совмещать и чтение, и запись информации: можно либо только читать из файла, либо только писать в файл. Однако, работая с различными файлами A и B, можно одновременно читать файл A и писать в файл B (и наоборот).
Все остальные действия над файлами последовательного доступа являются композицией его просмотра и создания.
Некоторые стандартные процедуры для последовательной работы с файлами
где: Assign (от англ. назначить) - имя процедуры; F - имя файловой переменной (логическое имя файла); Name - имя файла на диске (физическое имя файла). Это имя связывается с файловой переменной F, и в дальнейшем все операции с F будут производиться над дисковым файлом с именем Name.
После выполнения этой процедуры Name и F отождествляются, т.е. отождествляются логическое и физическое имена файла.
Данная процедура должна выполняться перед использованием файла. Перед выполнением операций ввода-вывода файл должен быть открыт с помощью одной из следующих процедур:
2. Reset (var F: File),
где: Reset (от англ. переустановить) - имя процедуры; F - имя переменной файлового типа.
Процедура открывает файл F для чтения и ставит указатель на начало первого компонента файла (на компонент с номером 0).
Файловая переменная F должна соответствовать уже существующему на диске файлу, иначе возникает ошибка "I/О error" (от англ. Input/Output error - ошибка ввода-вывода).
3. Rewrite (var F: File),
где: Rewrite (от англ. установить на запись) - служебное слово; F - имя переменной файлового типа.
Процедура открывает файл F для записи, "очищает" его и помещает указатель на начало первого компонента файла. Таким образом, существующий файл с данным именем будет уничтожен. Дисковый файл, организуемый с помощью процедуры Rewrite, создается пустым (не содержащим компонентов).
4. Read (var F: File of Type; var V: Type),
где: Read (от англ. читать) - имя процедуры; F - имя переменной файлового типа; V - имя переменной (или список из нескольких переменных, разделенных запятыми), совпадающей по типу с типом Type элементов файла.
Каждая переменная считывается с дискового файла, и после окончания чтения файловый указатель перемещается на следующий компонент файла.
5. Write (var F: File of type; var V: Type),
где: Write (от англ. писать) - имя процедуры; F - имя переменной файлового типа; V - имя переменной (или список нескольких переменных, разделенных запятыми), совпадающей по типу с типом элементов файла Type.
Каждая переменная записывается в дисковый файл, и после окончания операции записи файловый указатель перемещается на следующий компонент файла. После окончания работы с файлом, он должен быть закрыт, иначе результат будет потерян. "Закрывает" файл процедура Close.
6. Close (var F: File),
где: Close (от англ. закрыть) - служебное слово; F - имя переменной файлового типа.
Дисковый файл, отождествленный с переменной F, закрывается и в каталог диска вносятся необходимые изменения.