Ада-95. Компилятор GNAT



              

Пакет AdaText_IO


Основой организации текстового ввода/вывода Ады является пакет Ada.Text_IO

и коллекция его дочерних пакетов.

Этот пакет обеспечивает средства, которые позволяют манипулировать текстовыми файлами.

Примерами таких средств могут служить подпрограммы Close, Delete, Reset, Open, Create ...

Главный тип данных пакета Ada.Text_IO - это лимитированный приватный тип File_Type. Он является внутренним представлением файла.

Стандарт Ada95 добавил тип File_Access, как ссылку на тип File_Type

(объекты имеющие тип File_Access часто называют дескрипторами файлов).

При открытии или создании файла, производится ассоциирование между именем файла в системе и объектом типа File_Type.

Кроме того, при открытии или создании файла, необходимо указывать режим доступа к файлу:

In_File чтение файла
Out_File  -  запись в файл
Append_File  -  запись в конец существующего файла (Ada95)

Заметим, что эти значения имеют тип File_Mode, который также описывается в пакете Ada.Text_IO.

После этого, объект типа File_Type может быть использован для выполнения непосредственных обращений к файлу.

В приведенном ниже примере, процедура Create создает файл "first_file.dat", после чего, в этот файл процедурами Put и New_Line производится запись строки "It is my first text file!".

В завершение, процедура Close закрывает ранее открытый файл.

with Ada.Text_IO; use Ada.Text_IO;

procedure Demo_File_IO is

My_File : Ada.Text_IO.File_type;

begin

Create(File => My_File, Mode => Out_File, Name => "first_file.dat");

Put(File => My_File, Item => "It is my first text file!");

New_Line(My_File);

Close(My_File); -- требуется! Ада может не закрыть -- открытый вами файл end Demo_File_IO;

Программа, представленная в следующем примере, выполняет посимвольное чтение данных из одного файла ("input.dat") и посимвольную запись этих же данных в другой файл ("output.dat").

with Ada.Text_IO; use Ada.Text_IO;

procedure Read_Write is

Input_File : File_type; Output_File : File_type; Char : Character;

begin

Open(Input_File, In_File, "input.dat"); Create(Output_File, Out_File, "output.dat");

while not End_Of_File(Input_File) loop

while not End_Of_Line(Input_File) loop

Get(Input_File, Char); Put(Output_File, Char); end loop; Skip_Line(Input_File); New_Line(Output_File); end loop;

Close(Input_File); Close(Output_File); end Read_Write;

<


Содержание  Назад  Вперед