Справочник по Ada 2012
A.8.5 Операции прямого ввода-вывода
Статическая семантика
В этом подпункте описаны доступные операции прямого ввода-вывода. Исключение Status_Error передаётся, если любая из этих операций используется для файла, который не открыт.
процедура Read(File : вход File_Type; Item : выход Element_Type;
From : вход Positive_Count);
процедура Read(File : вход File_Type; Item : выход Element_Type);
From : вход Positive_Count);
процедура Read(File : вход File_Type; Item : выход Element_Type);
Операция выполняется над файлом режима In_File или Inout_File. В случае первого варианта устанавливает текущий индекс данного файла на значение индекса, заданное параметром From. Затем (для обоих вариантов) возвращает в параметре Item значение элемента, позиция которого в данном файле задана текущим индексом файла; наконец, увеличивает текущий индекс на единицу.
Исключение Mode_Error передаётся, если режим данного файла равен Out_File. Исключение End_Error передаётся, если индекс, который должен быть использован, превышает размер внешнего файла. Исключение Data_Error может быть передано, если считанный элемент невозможно интерпретировать как значение подтипа Element_Type (см. A.13).
процедура Write(File : вход File_Type; Item : вход Element_Type;
To : вход Positive_Count);
процедура Write(File : вход File_Type; Item : вход Element_Type);
To : вход Positive_Count);
процедура Write(File : вход File_Type; Item : вход Element_Type);
Операция выполняется над файлом режима Inout_File или Out_File. В случае первого варианта устанавливает индекс данного файла на значение индекса, заданное параметром To. Затем (для обоих вариантов) присваивает значение параметра Item элементу, позиция которого в данном файле задана текущим индексом файла; наконец, увеличивает текущий индекс на единицу.
Исключение Mode_Error передаётся, если режим данного файла равен In_File. Исключение Use_Error передаётся, если ёмкость внешнего файла превышена.
процедура Set_Index(File : вход File_Type; To : вход Positive_Count);
Операция выполняется над файлом любого режима. Устанавливает текущий индекс данного файла на заданное значение индекса (которое может превышать текущий размер файла).
функция Index(File : вход File_Type) возвращает Positive_Count;
Операция выполняется над файлом любого режима. Возвращает текущий индекс данного файла.
функция Size(File : вход File_Type) возвращает Count;
Операция выполняется над файлом любого режима. Возвращает текущий размер внешнего файла, связанного с данным файлом.
функция End_Of_File(File : вход File_Type) возвращает Boolean;
Операция выполняется над файлом режима In_File или Inout_File. Возвращает True, если текущий индекс превышает размер внешнего файла; иначе возвращает False.
Исключение Mode_Error передаётся, если режим данного файла равен Out_File.
ПРИМЕЧАНИЯ
25 Режим Append_File не поддерживается для обобщённого пакета Direct_IO.