comp.lang.ada
 help / color / mirror / Atom feed
From: Robert A Duff <bobduff@shell01.TheWorld.com>
Subject: Re: Initialize with aggregate?
Date: 21 Nov 2005 17:21:59 -0500
Date: 2005-11-21T17:21:59-05:00	[thread overview]
Message-ID: <wccd5kt4p6g.fsf@shell01.TheWorld.com> (raw)
In-Reply-To: 1132602018.206322.285630@g44g2000cwa.googlegroups.com

ejijott@gmail.com writes:

> Hi there!
> 
> Regarding the code below, what syntax do I use to initialize tempstore
> with an aggregate?
> [code]
> .
> .
> .
>     type node;
>     type storage is access node;
>     type node is
>         record
>             next:  storage;       -- Pekare till n�sta nod.
>             item:  string(1..50); -- En textstr�ng
>             len:   integer :=-1;  -- L�ngden p� str�ngen.
>             count: integer := 0;  -- Antalet f�rekomster av str�ngen
>         end record;
> .
> .
> .
>         tempstore:=new Node;
>         tempstore.item(1 .. Val'length):=Val;
>         tempstore.len:=Val'length;
>         tempstore.count:=1;
>         if S /= null then
>             tempstore.next:=S;
>         end if;
>         S:=tempstore;
> [/code]

How about something like this:

    type node;
    type storage is access node;
    type node(len: natural) is
        record
            next:  storage;       -- Pekare till n�sta nod.
            item:  string(1..len); -- En textstr�ng
            count: integer := 0;  -- Antalet f�rekomster av str�ngen
        end record;

    tempstore:=new Node'(
            len => val'length,
            next => S,
            item => val,
            count => 1);
    S:=tempstore;

Hardwiring Item'Length to 50 isn't a good idea, and it makes the
programming harder, because you have to carefully avoid the junk
at the end.

- Bob



  parent reply	other threads:[~2005-11-21 22:21 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-11-21 19:40 Initialize with aggregate? ejijott
2005-11-21 21:38 ` Gautier Write-only
2005-11-21 21:49 ` Simon Wright
2005-11-22 17:10   ` Adam Beneschan
2005-11-22 20:00     ` Simon Wright
2005-11-21 22:21 ` Robert A Duff [this message]
2005-11-22 16:57   ` Adam Beneschan
2005-11-22 20:07     ` Robert A Duff
replies disabled

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