F.S. Save Data - JulTob/Ada GitHub Wiki

-- Save_Record.adb
---- Record a record -- He he
with Ada.Strings.Unbounded;
With Ada.Text_IO;

procedure Save_Record is

  type User is record
    Age    : Natural;
    Name   : Ada.Strings.Unbounded.Unbounded_String;
    end record;

  procedure Save( 
    Joe: in User;
    FileName: in String) is
     File: Ada.Text_IO.File_Type;
    begin
      -- Open the file if it doe not exist, create it
      declare
      begin
        Ada.Text_io.
         Open(
          File => File,
          Mode => Ada.Text_IO.Out_File,
          Name => Filename);
      exception
        when Ada.Text_IO.Name_Error =>
          Ada.Text_IO.
            Create(
              File => File,
              Mode => Ada.Text_IO.Out_File,
              Name => Filename);
      end;

    -- Record
    Ada.Text_IO.Put( File => File,
    Item =>"{ " &
       " name: " &
       '"' & Ada.Strings.Unbounded.To_String(Joe.Name) & '"'
       & ';' & 
       " Age: " & Natural'Image(Joe.Age)
       );

    -- Close File
    Ada.Text_IO.Close(File => File);
    end Save;

   Jane: User;
  begin
   Jane.Name := Ada.Strings.Unbounded.To_Unbounded_String("Jane Doe");
   Jane.Age := 25;
 
  Save(Jane, "Jane.data.json");

end Save_Record;