Buscar..


Observaciones

La biblioteca estándar de Ada proporciona E / S de archivos tradicionales de texto o datos binarios, así como E / S de archivos transmitidos. Los archivos de datos binarios serán secuencias de valores de un tipo, mientras que los archivos de flujo pueden ser secuencias de valores de tipos posiblemente diferentes.

Para leer y escribir elementos de diferentes tipos desde / a archivos de transmisión, Ada utiliza subprogramas indicados por los atributos de los tipos, a saber, 'Read , 'Write , 'Input y 'Output . Estos dos últimos leer y escribir límites de la matriz, discriminantes de registro, y etiquetas de tipo, además de la entrada y la salida al descubierto que Read y 'Write llevará a cabo.

Crear y escribir al archivo.

Los procedimientos Create , Put_Line , Close del paquete Ada.Text_IO se utilizan para crear y escribir en el archivo file.txt .

with Ada.Text_IO;

procedure Main is
   use Ada.Text_IO;
   F : File_Type;
begin
   Create (F, Out_File, "file.txt");
   Put_Line (F, "This string will be written to the file file.txt");
   Close (F);
end;

Archivo resultante file.txt

This string will be written to the file.txt

Crear y escribir en una secuencia

Los atributos orientados a la secuencia de los subtipos se llaman para escribir objetos en un archivo, desnudos y utilizando representaciones binarias predeterminadas.

with Ada.Streams.Stream_IO;

procedure Main is
   type Fruit is (Banana, Orange, Pear);
   type Color_Value is range 0 .. 255;
   type Color is record
      R, G, B : Color_Value;
   end record;

   Fruit_Colors : constant array (Fruit) of Color :=
     (Banana => Color'(R => 243, G => 227, B => 18),
      Orange => Color'(R => 251, G => 130, B => 51),
      Pear   => Color'(R => 158, G => 181, B => 94));

   use Ada.Streams.Stream_IO;

   F : File_Type;

begin
   Create (F, Name => "file.bin");
   for C in Fruit_Colors'Range loop
      Fruit'Write (Stream (F), C);
      Color'Write (Stream (F), Fruit_Colors (C));
   end loop;
   Close (F);
end Main;

Archivo resultante

00000000  00 2e f3 00 e3 00 12 00  01 2e fb 00 82 00 33 00
00000010  02 2e 9e 00 b5 00 5e 00                         

Abrir y leer desde el archivo Stream

Lea los datos de Crear y escribir en una secuencia de nuevo en un programa.

with Ada.Streams.Stream_IO;

procedure Main is
   --
   --  ... same type definitions as in referenced example
   --
   Fruit_Colors : array (Fruit) of Color;

   use Ada.Streams.Stream_IO;

   F : File_Type;
   X : Fruit;
begin
   Open (F, Mode => In_File, Name => "file.bin");
   loop
      Fruit'Read (Stream (F), X);
      Color'Read (Stream (F), Fruit_Colors (X));
   end loop;
exception
   when End_Error =>
      Close (F);
   pragma Assert  -- check data are the same
     (Fruit_Colors (Banana) = Color'(R => 243, G => 227, B => 18) and
      Fruit_Colors (Orange) = Color'(R => 251, G => 130, B => 51) and
      Fruit_Colors (Pear)   = Color'(R => 158, G => 181, B => 94));
end Main;


Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow