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

Если все операции ввода-вывода с файлом используют данные некоторого определенного типа T, то такой файл называют типизированным. Такому файлу соответствует тип файловой переменной – file of T.

Часто компонентами типизированного файла являются записи.

 

 

Пример описания типизированного файла:

Type

Student = record

name : string[20];

gruppa : string[5];

number: integer;

end;

Var

F: file of Student;

Стандартные процедуры и функции работы с типизированными файлами

AssignFile(F, Str) – процедура определения файловой переменной. F –файловая переменная, Str –строка, содержащая путь к файлу и его имя.

Rewrite(F) – процедура открытия файла для записи (создание нового файла).

Reset(F)– процедура открытия существующего файла для чтения.

Read(F, P) – процедура чтения данных из файла. P – переменная того же типа, что и компоненты файла.

Write(F, P) – процедура записи данных в файл.

Seek(F, n) – процедура устанавливает указатель текущей позиции файла на компонент с порядковым номером n (n = 0, 1, 2, …). Обеспечивает прямой доступ к данным.

CloseFile(F) – процедура закрытия файла.

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

Eof(F) – функция проверки маркера конца файла. Функции возвращает True, если указатель текущей позиции файла находится сразу за последней его компонентой, и False – в противном случае.

FilePos(F) – функция возвращает номер текущего компонента файла.

FileSize(F) – функция возвращает длину файла – количество компонент в файле.

IOResult – функция возвращает код ошибки последней операции ввода-вывода. Если IOResult(F) = 0,операция ввода-вывода успешно завершилась – ошибки нет. Для использования данной функции в программе необходимо отключить системную обработку ошибок ввода-вывода {$I-}перед выполнением операции с файлом, а потом вернуть обработку ошибок системе – {$I+}.

 

Пример обработки ошибки при открытии файла:

Var

F: file of byte;

Begin

AssignFile(F, 'MyFile');

{$I-}

Reset(F);

{$I+}

if IOResult = 0 then

Writeln('Размер файла в байтах: ', FileSize(F))

Else

Writeln('Файл не найден');

End.

Текстовые файлы

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

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

Синтаксис описания файловых переменных текстового файла:

<имя файловой переменной> : text;