- •41 Оператор While.Вложенные записи
- •Оператор with
- •X между ключевыми словами with и dо относится к переменной типа
- •Вложенные записи
- •42Применение файлового типа данных. Процедура Assign
- •43Процедуры открытия файлов
- •44Процедуры и функции для работы с файлами
- •Типизированные файлы
- •45 Типизированные, не типизированные и текстовые файлы
- •Текстовые файлы
- •46 Процедуры для работы с каталогами
43Процедуры открытия файлов
Под файлом понимается именованная область внешней памяти ПК (жесткого диска, гибкой дискеты, диска CD-ROM).
Открытие файла может осуществляться тремя процедурами — в зависимости от типа его дальнейшего использования:
Процедура Reset(var F: File); открывает существующий файл для чтения и записи, текущая позиция устанавливается на первой строке файла.
Процедура Append(var F: Text); открывает файл для записи информации после его последней строки, текущая позиция устанавливается на конец файла.
Процедура Rewrite(var F: File); создает новый файл и открывает его, текущая позиция устанавливается в начало файла. Если файл с таким именем уже существует, то он перезаписывается.
44Процедуры и функции для работы с файлами
Ниже описываются процедуры и функции, которые можно использовать с файлами любого вида. Специфика работы с типизированными, текстовыми и нетипизированными файлами рассматривается в следующих разделах.
Процедура Close.Закрывает файл, однако связь файловой переменной с именем файла, установленная ранее процедурой ASSIGN, сохраняется.
При создании нового или расширении старого файла процедура обеспечивает сохранение в файле всех новых записей и регистрацию файла в каталоге. Функции процедуры CLOSE выполняются автоматически по отношению ко всем открытым файлам при нормальном завершении программы. Поскольку связь файла с файловой переменной сохраняется, файл можно повторно открыть без дополнительного использования процедуры ASSIGN.
Процедура RENAME.Переименовывает файл. Формат обращения:
RENAME (<ф.п.>, <новое имя>)Здесь <новое имя> - строковое выражение, содержащее новое имя файла. Перед выполнением процедуры необходимо закрыть файл, если он ранее был открыт процедурами RESET, REWRITE или APPEND.
Процедура ERASE.Уничтожает-файл. Формат обращения:
ERASE (<ф.п.>)Перед выполнением процедуры необходимо закрыть файл, если он ранее был открыт процедурами RESET, REWRITE или APPEND.Следующий фрагмент программы показывает, как можно использовать процедуры RENAME и CLOSE при работе с файлами. Предположим, что требуется отредактировать файл, имя которого содержит переменная NAME. Перед редактированием необходимо убедиться, что нужный файл имеется на диске, и переименовать его - заменить расширение этого файла на ВАК (страховочная копия). Если файл с таким расширением уже существует, его надо стереть.
Функция EOF (<ф. п. >) : BOOLEAN.Логическая функция, тестирующая конец файла. Возвращает TRUE, если файловый указатель стоит в конце файла. При записи это означает, что очередной компонент будет добавлен в конец файла, при чтении -что файл исчерпан.
Функция IORESULT: WORD.Возвращает условный признак последней операции ввода-вывода.
Если операция завершилась успешно, функция возвращает ноль. Коды ошибочных операций ввода-вывода представлены в прил.З. Следует помнить, что IORESULT становится доступной только при отключенном автоконтроле ошибок ввода-вывода. Директива компилятора {$I-} отключает, а директива {$I+} включает автоконтроль. Если автоконтроль отключен, а операция ввода-вывода привела к возникновению ошибки, устанавливается флаг ошибки и все последующие обращения к вводу-выводу блокируются, пока не будет вызвана функция IORESULT.
Процедура Seek (Var f; n:longinnt) Перемещает между элементами файла. Позиционирует показатель на нужный элемент в файле.
Функция file size (var f: longint) Текущая длина файла
Функция file Pos запись информации в файл и считывание информации
