Всякий дисковый файл становится доступным программе на Паскале, если его связать с файловой переменной, которая впоследствии объявляется в исходном коде программы. И в результате все операции будут производиться не с самим физическим файлом, а лишь используя связанную с ним файловую переменную. Опишем более менее подробно основные процедуры и функции, которые программист использует в своей программе при работе с файлами.
Основные процедуры и функции при работе с файлами Паскаль
1) assign(f, filename)
- обеспечивает связь файловой переменной f с физическим файлом. Полное имя этого физического файла помещено в строку filename. Закрепленная связь будет действительной до конца выполнения программы, либо пока не будет произведено некое переназначение. После того, как мы связали файловую переменную с физическим файлом, в программе необходимо указать то направление, по которому будет осуществляться передача данных (операция открытия файла). В зависимости от выбранного направления мы либо производим чтение из файла, либо осуществляем запись в файл.
2) reset(f)
- осуществляет открытие файла (с этим файлом как раз и связана файловая переменная f) для записи. В случае успеха при завершении данной процедуры файл подготовлен к чтению его первого элемента. При завершении reset может появится сообщение об ошибке, но это в случае, когда указанный программистом файл так или иначе не найден. Если f является типизированным файлом, то при использовании процедурыreset происходит открытие этого файла для чтения и записи единовременно.
3) rewrite(f)
- осуществляет запись файла (с этим файлом как раз и связана файловая переменная f). По успешном окончании этой процедуры наш файл подготовлен для записи в него элементов, начиная с первого. Может возникнуть ситуация, что данный файл уже существует, тогда все данные, содержащиеся в нем, уничтожаются.
4) close(f)
- обеспечивает закрытие открытого до этого файла, связанного с файловой переменной f. Когда мы завершаем работу с файлами, необходимо вызвать процедуру close. Однако по какой-нибудь причине рассматриваемая процедура может оказаться не выполненной, но файл все-таки создастся на периферийном устройстве, а содержимое последнего буфера не перенесется.
5) eof( f)
- принимает значение истина (true), если при чтении был достигнут конец файла. Данная ситуация означает, что последний элемент файла уже прочтен, либо файл оказался пустым после открытия.
6) rename(f,fnewname)
- обеспечивает возможность переименования физического файла на диске, который связан с файловой переменной f. Помните: переименовать возможно только после закрытия файла.
7) erase(f)
- осуществляет уничтожение физического файла на диске, связанного с файловой переменной f. Как и в случае с rename, так и в нашем случае процедура erase выполняется по окончании закрытия файла.
8) ioresult
- функция, возвращающая целое число, которое соответствует коду конечной ошибки ввода/вывода. В случае нормального завершения операции данная функция вернет значение 0. Необходимо присвоить какой-нибудь переменной значение рассматриваемой функции ioresult, поскольку при каждом следующем вызове она обнуляет свои значения. Работа функции ioresult возможна лишь в выключенном режиме проверки ошибок ввода/вывода, либо с использованием ключа компиляции {$I-}.