Объекты файловой системы ОС представлены в пакете Text_IO типом, который имеет вполне логичное название File_Type. Все операции над файлами производятся при помощи объектов этого типа. По умолчанию для операций ввода (таких, как Get) используется объект Current_Input (который имеет тип File_Type), а для операций вывода (таких, как Put и Put_Line) - Current_Output (также имеющий тип File_Type).
До того, как выполнять запись или чтение в файл, он должен быть либо открыт, либо создан. В пакете Text_IO для этого есть две основные процедуры, которые естественно называются Open и Create. Процедура Open открывает существующий файл, а Create - создает новый (или очищает существующий файл) и открывает его. Перед выходом из программы необходимо закрыть все файлы, которые были открыты; для этого используется процедура Close. Ниже даны описания этих процедур:
procedure Create (File : in out File_Type; Mode : in File_Mode := Out_File; Name : in String := ""; Form : in String := ""); procedure Open (File : in out File_Type; Mode : in File_Mode; Name : in String; Form : in String := ""); procedure Close (File : in out File_Type);
Параметр ``Mode'' может принимать значения In_File (файл для ввода), Out_File (файл для вывода) или Append_File (файл для вывода, в котором данные добавляются в конец файла). Параметр ``Form'' является необязательным и используется для предоставления операционной системе дополнительной информации, если это необходимо.
Все подпрограммы Get и Put могут принимать в качестве первого параметра переменную типа File_Type. Если параметр этого типа будет передан, то подпрограмма произведет чтение или запись в данный файл. Вообще говоря, если не должно использоваться стандартное устройство ввода-вывода, то подпрограмме ввода-вывода необходимо передать переменную типа File_Type в качестве первого параметра.
Ниже приведен простейший пример программы, которая создает новый файл с именем "hi" и записывает в него некоторый текст:
Если запустить программу Make_Hi два раза, сколько строк текста будет содержать файл "hi"?
Перейти к предыдущему разделу | Перейти к следующему разделу | Вернуться к содержанию Урока 9 |
---|
David A. Wheeler (dwheeler@ida.org)
Исходная копия этого документа находится по адресу
"http://www.adahome.com/Tutorials/Lovelace/s9s1.htm".
Исходная копия перевода размещена на сайте http://www.ada-ru.org
Перевод: Юрий Королев
Общая редакция перевода: Г.Ю. Сисюк