Типизированные файлы
Если все операции ввода-вывода с файлом используют данные некоторого определенного типа 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;