Suche…


Bemerkungen

Die Ada-Standardbibliothek bietet E / A für herkömmliche Textdateien oder binäre Daten sowie E / A für gestreamte Dateien. Dateien mit binären Daten sind Folgen von Werten eines Typs, während Stream-Dateien Folgen von Werten verschiedener Typen sein können.

Um Elemente verschiedener Typen aus / in Stream-Dateien zu lesen und zu schreiben, verwendet Ada Unterprogramme, die durch die Attribute der Typen gekennzeichnet sind, nämlich 'Read , 'Write , 'Input und 'Output . Die beiden letzteren lesen und schreiben Arraygrenzen, zeichnen Diskriminanten auf und geben Tags sowie die bloße Eingabe und Ausgabe, die Read und 'Write ausführen, ein.

Erstellen und in Datei schreiben

Die Prozeduren Create , Put_Line , Close aus dem Paket Ada.Text_IO werden zum Erstellen und Schreiben in die Datei 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;

Ergebnisdatei file.txt

This string will be written to the file.txt

Erstellen und schreiben Sie in einen Stream

Die Stream-orientierten Attribute der Subtypen werden aufgerufen, um Objekte in eine Datei zu schreiben, leer zu legen und binäre Standarddarstellungen zu verwenden.

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;

Ergebnisdatei

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                         

Öffnen und Aus Streamdatei lesen

Lesen Sie die Daten von Create and Write To A Stream zurück in ein Programm.

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
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow