ИНИЦИАЦИЯ ФАЙЛА

 

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

Для чтения файл инициируется с помощью стандартной процедуры RESET;

reset (<ф. п.>);

Здесь <ф. п.> - файловая переменная, связанная ранее процедурой ASSIGN с уже существующим файлом или логическим устройством - приемником информации.

При выполнении этой процедуры дисковый файл или логическое устройство подготавливается для чтения информации. В результате специальная переменная-указатель, связанная с этим файлом, будет указывать на начало файла, т.е. на компонент с порядковым номером 0.

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

var

f : file of integer;

........

assign(f, 'array.dat');

{$i-} {Отключить контроль ошибок ввода-вывода}

reset(f);

{$i+} {Включить контроль ошибок ввода-вывода}

if IORESULT <> 0 then ..... {Файл не существует}

else .... {Файл существует}

 

В этом фрагменте с помощью директивы компилятора {$i-} отключается автоматический контроль ошибок ввода-вывода. Если этого не сделать, то отсутствие файла приведет к аварийному завершению программы.

В Турбо Паскале разрешается обращаться к типизированным файлам, открытым процедурой Reset (т. е. для чтения информации) с помощью процедуры Write (т. е. для записи информации). Такая возможность позволяет легко обновлять ранее созданные типизированные файлы и при необходимости расширять их. Для текстовых файлов, открытых процедурой Reset, нельзя использовать процедуру Write или Writeln.

Стандартная процедура Rewrite (<ф. п.>) инициирует запись информации в файл или в логическое устройство, связанное ранее с файловой переменной <ф.п.>. Процедурой Rewrite нельзя инициировать запись информации в ранее существующий дисковый файл при выполнении этой процедуры старый файл уничтожается и никаких сообщений об этом в программу не передается. Новый файл подготавливается к приему информации и его указатель принимает значение 0.

Стандартная процедура APPEND (<ф.п.>) инициирует запись в ранее существующий текстовый файл для его расширения, при этом указатель файла устанавливается в его конец. Процедура APPEND применяется только к тестовым файлам, т.е. их файловая переменная должна иметь тип TEXT. Процедурой APPEND нельзя инициировать запись в типизированный или не типизированный файл. Если текстовый файл ранее уже был уже открыт с помощью RESET или REWRITE, использование процедуры APPEND приведет к закрытию этого файла и открытию его вновь, но уже для добавления записей.