comp.lang.ada
 help / color / mirror / Atom feed
From: "Rodrigo García" <rodrigo.garcia@epfl.ch>
Subject: Re: Help needed; Saving access types with sequential_io?
Date: Mon, 24 Feb 2003 18:58:16 +0100
Date: 2003-02-24T18:58:16+01:00	[thread overview]
Message-ID: <3E5A5D38.1050004@epfl.ch> (raw)
In-Reply-To: 1946b526.0302240619.695b865a@posting.google.com

   I would use streams. See if the following code helps you:

with Ada.Streams.Stream_IO; use Ada.Streams.Stream_IO;
with Ada.Text_IO;

procedure Data_Save is
    type A_String is access String;

    type Data_Record is record
       A : A_String;
    end record;

    Saved : Data_Record;
    Loaded : Data_Record;
    F : File_Type;
    S : Stream_Access;
begin
    Create (F, Name => "serialized.txt");
    S := Stream (F);
    Saved.A := new String'("Data saved");
    String'Output (S, Saved.A.all);
    Close (F);

    Open (F, In_File, "serialized.txt");
    S := Stream (F);
    Loaded.A := new String'(String'Input (S));
    Close (F);
    Ada.Text_IO.Put_Line (Loaded.A.all);
end Data_Save;

Rodrigo

khendon wrote:
> Hi all
> 
> I'm a novice in ADA programming, and programming in general. For a
> school project I'm currently working on I'm supposed to create a
> database that needs to have saving/loading functionality. It's all
> very simple stuff, but I'm stuck at the moment, since I don't really
> know how to save the different access types I'm using. The
> informations is saved in records:
> 
> type info;
> type a_info is access info;
> type a_string is access string;
> type info is
>   record
>     a: a_string;
>     b: a_string;
>   end record;
> 
> First, I tried just saving the entire record. That didn't work, my
> guess is because it contains access types, and whatever they're
> currently pointing at disapperas when I shut down the program. So, I
> then thought of saving each string separately. That seemed to work, at
> least the data got saved as it was supposed to. Unfortunately, I'm
> having trouble loading the data from the file into new records that
> will then be added to the database.
> 
> The only way I can think of is to load the data into temporary string,
> and then add those strings to the record. The problem with this is
> that those temporary strings need to have a defined length, so when I
> add them to the record, they will contain lots of garbage I just don't
> want there. That's the whole point of using access types in the record
> in the first place, to be able to save strings of different lengths
> depending on user input.
> 
> If anyone could provide any help I would be most grateful. 
> 
> Regards, Isak





  reply	other threads:[~2003-02-24 17:58 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-02-24 14:19 Help needed; Saving access types with sequential_io? khendon
2003-02-24 17:58 ` Rodrigo García [this message]
2003-02-25  3:24 ` Steve
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox