Файлы
Для хранения информации на постоянном носителе используют файлы. Файл в языке Паскаль – поименованная условно-бесконечная последовательность однотипных записей, доступ к которым осуществляется последовательно. Файл по структуре похож на киноплёнку, в которой каждый кадр – запись.
При объявлении переменной типа «файл» не требуется указывать количество записей в файле. При открытии файла указатель текущей позиции устанавливается на первую запись. Прочтение очередной записи переводит указатель на одну запись вперёд, к концу файла. Если прочитана последняя запись, значение функции EOF(<файловая_переменная>) – устанавливается в истину, после чего чтение невозможно.
Синтаксис объявления файловой переменной выглядит как:
<идентификатор> : file
of <тип записи>;
например, F: file of Byte;
Тип записи может быть любым простым или сложным типом, за исключением файлов. Чаще всего работают с файлами из структур, символов, целых чисел или байтов.
При работе с файлами необходимо связать файловую переменную с некоторым строковым значением, содержащим имя файла. Данная операция реализуется при помощи стандартной процедуры
Assign (<файловая_переменная>,<строковое_значение>);
например, Assign(F,’a:\data.bin’);
Перед началом работы файл необходимо открыть. В зависимости от смысла операций, файл может быть открыт как на чтение, так и на запись. Открытие на чтение (Reset(<файловая_переменная>)) означает установку указателя текущей записи на первую запись файла. Операция открытия на запись (Rewrite(<файловая_переменная>)) дополнительно удаляет старое содержимое файла.
Ввод и вывод информации в файл осуществляется при помощи стандартных процедур Write и Read. В отличие от вызова их для консольного ввода/вывода, при работе с файлами первым параметром в них передаётся файловая переменная.
Для перемещения по файлу используют процедуру Seek, позволяющую устанавливать произвольную текущую позицию относительно начала или конца файла, а также от текущей позиции.
По окончании операций с файлом, его следует закрыть при помощи процедуры Close(<файловая_переменная>). Это действие не следует забывать, так как находящаяся в буферах системы информация должна быть выведена на диск.