Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Программирование.docx
Скачиваний:
11
Добавлен:
25.09.2019
Размер:
245.64 Кб
Скачать

14.2.1. Управление файлами

В этом разделе описаны процедуры и функции, предназначенные для управления внешними файлами; их описания повторены в каждом из трех пакетов последовательного, прямого и текстового ввода-вывода. Процедуры CREATE, OPEN и RESET при вводе-выводе текстовимеют дополнительные эффекты, описанные в разд. 14,3.1.

procedure OPEN( FILE : in out FILE_TYPE; MODE : in FILE_MODE; NAME : in STRING; FORM : in STRING := "");

Устанавливает новый внешний файл с данным именем и формой и связывает его с данным файлом (FILE). После этого данный файл открывается. Текущий вид файла устанавливается в заданный вид доступа (MODE). По умолчанию для последовательного и текстового ввода-вывода устанавливается вид OUT_FILE, а для прямого ввода-вывода — INOUT_FILE. Для прямого доступа размер созданного файла зависит от реализации. Пустая строка под именем (NAME) задает внешний файл, который не доступен после окончания главной программы (временный файл). Пустая строка для формы (FORM) задает параметры по умолчанию, определяемые реализацией для внешнего файла.

Если данный файл уже открыт, то возбуждается исключение STATUS_ERROR. Если указанная в качестве параметра NAME строка не допускает идентификацию внешнего файла, то возбуждается исключение NAME_ERROR. Если для заданного вида файла окружение не может обеспечить создание внешнего файла с заданными именем и формой, то возбуждается исключение USE_ERROR (в отсутствие возбуждения исключения NAME_ERROR).

procedure CREATE(FILE : in out FILE_TYPE; MODE in FILE_MODE :=вид по умолчанию; NAME in STRING := ""; FORM in STRING := "");

Связывает данный файл с существующим внешним файлом, имеющим данные имя и форму, а текущий вид данного файла устанавливается параметром MODE. Данный файл открывается.

Если данный файл уже открыт, то возбуждается исключение STATUS_ERROR. Если строка, заданная параметром NAME, не допускает идентификацию внешнего файла, то возбуждается исключение NAME_ERROR; в частности, это исключение возбуждается, если внешнего файла с указанным именем не существует. Если для заданного вида файла окружение не может обеспечить открытие внешнего файла с данными именем и формой, то возбуждается исключение USE_ERROR (в отсутствие возбуждения исключения NAME_ERROR).

procedure CLOSE(FILE : in out FILE_TYPE);

Уничтожает связь между данным файлом и соответствующим ему внешним файлом. Данный файл закрывается.

Если данный файл не открыт, то возбуждается исключение STATUS_ERROR.

procedure DELETE(FILE : in out FILE_TYPE);

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

Если данный файл не открыт, то возбуждается исключение STATUS_ERROR. Если уничтожение внешнего файла не может быть обеспечено окружением, то возбуждается исключение USE_ERROR (все такие случаи должны быть описаны в приложении F).

procedure RESET(FILE : in out FILE_TYPE; MODE : in FILE_MODE);procedure RESET(FILE : in out FILE_TYPE);

Устанавливает данный файл в состояние, позволяющее возобновить чтение или запись значений его элементов с начала файла; в частности, для прямого доступа это означает, что текущий индекс становится равным единице. Если задан параметр MODE, то в соответствии с ним устанавливается текущий вид данного файла.

Если файл не открыт, то возбуждается исключение STATUS_ERROR. Если для внешнего файла окружение не может осуществить возврат к началу файла или установку данного вида, то возбуждается исключение USE_ERROR.

function MODE(FILE : in FILE_TYPE) return FILE_MODE;

Возвращает текущий вид данного файла.

Если файл не открыт, то возбуждается исключение STATUS_ERROR.

function NAME(FILE : in FILE_TYPE) return STRING;

Возвращает строку, которая однозначно идентифицирует внешний файл, связанный с данным файлом (она может быть использована в операции OPEN). Если окружение допускает альтернативные спецификации имени (например, сокращения), то возвращаемая функцией строка обязана соответствовать полной спецификации имени.

Если данный файл не открыт, то возбуждается исключение STATUS_ERROR.

function FORM(FILE : in FILE_TYPE) return STRING;

Возвращает строку, определяющую форму внешнего файла, связанного в этот момент с данным файлом. Если окружение допускает альтернативные спецификации форм (например, сокращения, использующие возможности по умолчанию), то возвращаемая функцией строка обязана соответствовать полной спецификации (т.е. она обязана явно содержать все выбранные возможности, включая возможности по умолчанию).

Если данный файл не открыт, то возбуждается исключение STATUS_ERROR.

function IS_OPEN(FILE : in FILE_TYPE) return BOOLEAN;

Если файл открыт (т.е. связан с внешним файлом), то возвращает значение TRUE, в противном случае — FALSE.

Ссыпки: вид 14.1, внешний файл 14.1, закрытый файл 14.1, исключение NAME_ERROR 14.4, исключение STATUS_ERROR 14.4, исключение USE_ERROR 14.4, OUT_FILE 14.1, открытый файл 14.1, поименованная строка 14.1, прямой доступ 14.2, текущий вид 14.1, текущий размер 14.1, тип FILE_MODE 14.1, тип FILE_TYPE 14.1, файл 14.1, файл вида INOUT_FILE 14.2.4, форма файла 14.1.