Раздел 9.1 - Простейшие операции ввода/вывода текстового файла

В наших уроках до сих пор использовались только отдельные подпрограммы ввода/вывода, в основном из предопределенного пакета Text_IO. Теперь пришло время узнать о том, как можно использовать дополнительные возможности этого пакета, а в частности, о том, как выполнять чтение и запись текстовых файлов.

Объекты файловой системы ОС представлены в пакете 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" и записывает в него некоторый текст:


Verbose Configure


Упражнение:

Если запустить программу Make_Hi два раза, сколько строк текста будет содержать файл "hi"?

  1. 1.
  2. 2.
  3. Ни одной.

Вы можете также:

PREVIOUS Перейти к предыдущему разделу

NEXT     Перейти к следующему разделу

OUTLINE  Вернуться к содержанию Урока 9

David A. Wheeler (dwheeler@ida.org)

Перевод: Юрий Королев   Общая редакция перевода: Г.Ю. Сисюк

Исходная копия этого документа находится по адресу "http://www.adahome.com/Tutorials/Lovelace/s9s1.htm".

Исходная копия перевода размещена на сайте http://www.ada-ru.org