Справочник Ada 2005
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.
ПРИМЕЧАНИЯ
20 Режим Append_File не поддерживается для обобщённого пакета Direct_IO.