Файлы в Паскале

 

В стандартном Паскале все файлы обрабатываются как последовательные.

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

В ТР связь между логическим и физическим файлами устанавливается процедурой Assign(var f:<файл>, f_name:string).

Первым параметром является переменная одного из файловых типов, второй параметр - имя физического файла. Например,

var f:text; {Описание файловой переменной}

... {Другие описания}

begin Assign(f, ’A:\LAB\myfile.txt’);

... {Операторы}

end.

 

После связи логического файла с физическим файл должен быть открыт одной из процедур: Reset(f :<файл>) или Rewrite(f :<файл>).

При открытии файлов для чтения или для записи указатель файла устанавливается в начало файла. Файл, открываемый для чтения, должен существовать, в противном случае произойдет ошибка.

При открытии существующего файла для записи содержащаяся в нем информация стирается. Если для записи открывается несуществующий файл, то файл с таким именем создается.

Функция EoF(f:<файл>):boolean позволяет определить, достигнут ли конец файла. Она возвращает true, если указатель файла находится в конце файла, и false - в противном случае.

Завершается работа с файлом обращением к процедуре закрытия файла Close(var f:<файл>).

После закрытия файла физический файл, связанный с логическим файлом f, можно переименовать или стереть.

Процедура ReName (f :<файл>; new_name : string) переименовывает физический файл, связанный с логическим файлом f. После ее выполнения именем файла будет значение переменной new_name.

Процедура Erase(f: файл) стирает физический файл, связанный с логическим файлом f.

После закрытия файла файловая переменная может быть связана с другим физическим файлом.

Логический файл в Паскале может быть текстовым или типизованным, в ТР помимо этого - нетипизованным.