Инициализация файла

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

                  Reset (<ф.п.>);

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

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

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

var
     f: file of char;
begin
    assign (f,'myfile.dat');
    
{$I-} {Отключаем контроль ошибок ввода-вывода}
     reset (f);
    
{$I+} {Включаем контроль ошибок ввода-вывода}
     if
IOResult <> 0 then
         ........
{файл не существует}
     else
         ........
{Файл существует}
end.

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

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

Стандартная процедура  ReWrite (<ф.п.>)

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

Стандартная процедура Append (<ф.п.>)

инициализирует запись в ранее существовавший файл для его расширения, при этом указатель файла устанавливается в его конец. Процедура Append применима только к текстовым файлам, т.е. их файловая переменная должна иметь тип Text. Процедурой Append нельзя инициировать запись в типизированный или нетипизированный файл. Если текстовый файл ранее уже был открыт с помощью Reset или ReWrite, использование процедуры Append приведет к закрытию этого файла и открытию его вновь, но уже для добавления записей.

Back