comp.lang.ada
 help / color / mirror / Atom feed
* Dynamic allocation of named arrays
@ 2008-04-29  9:12 Kim Rostgaard Christensen
  2008-04-29  9:55 ` Thomas Locke
                   ` (2 more replies)
  0 siblings, 3 replies; 6+ messages in thread
From: Kim Rostgaard Christensen @ 2008-04-29  9:12 UTC (permalink / raw)


Hello

I need an array that has both variable length key and value (strings)
that is dynamically allocated at run-time.

I have looked at ada05's "Containers.Hashed_maps" but am missing a good
example on usage, and would like to use something more portable.

It is for loading a standard config file into memory.

Best
-- 
Kim Rostgaard Christensen



^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: Dynamic allocation of named arrays
  2008-04-29  9:12 Dynamic allocation of named arrays Kim Rostgaard Christensen
@ 2008-04-29  9:55 ` Thomas Locke
  2008-04-29 18:37   ` DScott
  2008-04-29 19:38 ` Simon Wright
  2008-04-29 20:14 ` Gautier
  2 siblings, 1 reply; 6+ messages in thread
From: Thomas Locke @ 2008-04-29  9:55 UTC (permalink / raw)


Kim Rostgaard Christensen wrote:
> Hello
> 
> I need an array that has both variable length key and value (strings)
> that is dynamically allocated at run-time.
> 
> I have looked at ada05's "Containers.Hashed_maps" but am missing a good
> example on usage, and would like to use something more portable.
> 
> It is for loading a standard config file into memory.
> 
> Best

Hello Kim,

Maybe this will work:

http://www.rosettacode.org/wiki/Creating_an_Associative_Array#Ada

:o)
Thomas



^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: Dynamic allocation of named arrays
  2008-04-29  9:55 ` Thomas Locke
@ 2008-04-29 18:37   ` DScott
  0 siblings, 0 replies; 6+ messages in thread
From: DScott @ 2008-04-29 18:37 UTC (permalink / raw)


Thomas Locke wrote:
> Kim Rostgaard Christensen wrote:
>> Hello
>>
>> I need an array that has both variable length key and value (strings)
>> that is dynamically allocated at run-time.
>>
>> I have looked at ada05's "Containers.Hashed_maps" but am missing a good
>> example on usage, and would like to use something more portable.
>>
>> It is for loading a standard config file into memory.
>>
>> Best
> 
> Hello Kim,
> 
> Maybe this will work:
> 
> http://www.rosettacode.org/wiki/Creating_an_Associative_Array#Ada
> 
> :o)
> Thomas
What? Not advice_config.ads/adb? :)

-- 
Fui et vidi experiri.
=DSM=



^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: Dynamic allocation of named arrays
  2008-04-29  9:12 Dynamic allocation of named arrays Kim Rostgaard Christensen
  2008-04-29  9:55 ` Thomas Locke
@ 2008-04-29 19:38 ` Simon Wright
  2008-04-29 20:14 ` Gautier
  2 siblings, 0 replies; 6+ messages in thread
From: Simon Wright @ 2008-04-29 19:38 UTC (permalink / raw)


Kim Rostgaard Christensen <krc@greenpc.dk> writes:

> I have looked at ada05's "Containers.Hashed_maps" but am missing a
> good example on usage, and would like to use something more
> portable.

If you have an Ada (05) compiler it will almost certainly have
Containers -- what could be more portable than that?



^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: Dynamic allocation of named arrays
  2008-04-29  9:12 Dynamic allocation of named arrays Kim Rostgaard Christensen
  2008-04-29  9:55 ` Thomas Locke
  2008-04-29 19:38 ` Simon Wright
@ 2008-04-29 20:14 ` Gautier
  2008-04-29 20:59   ` Gautier
  2 siblings, 1 reply; 6+ messages in thread
From: Gautier @ 2008-04-29 20:14 UTC (permalink / raw)


Kim Rostgaard Christensen wrote:

> Hello
> 
> I need an array that has both variable length key and value (strings)
> that is dynamically allocated at run-time.
> 
> I have looked at ada05's "Containers.Hashed_maps" but am missing a good
> example on usage

with Ada.Strings.Unbounded.Hash;
...

   package Dictionaries is new Ada.Containers.Hashed_Maps
             (Ada.Strings.Unbounded.Unbounded_String,
              Ada.Strings.Unbounded.Unbounded_String,
              Ada.Strings.Unbounded.Hash,
              equivalent_keys => Ada.Strings.Unbounded."=");

For a full example, search "Texture_Name_Mapping" in:

http://globe3d.svn.sourceforge.net/viewvc/globe3d/src/globe_3d-textures.adb?revision=78&view=markup

 > , and would like to use something more portable.

Well, how can it be more portable ?!...
Do you mean with some Ada 95 compilers ?
______________________________________________________________
Gautier         -- http://www.mysunrise.ch/users/gdm/index.htm
Ada programming -- http://www.mysunrise.ch/users/gdm/gsoft.htm

NB: For a direct answer, e-mail address on the Web site!



^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: Dynamic allocation of named arrays
  2008-04-29 20:14 ` Gautier
@ 2008-04-29 20:59   ` Gautier
  0 siblings, 0 replies; 6+ messages in thread
From: Gautier @ 2008-04-29 20:59 UTC (permalink / raw)


Mmmmh - always better to test examples before posting...
This one is working:

-----8<-----------8<-----------8<-----------8<------

with Ada.Containers.Hashed_Maps;
with Ada.Strings.Unbounded.Hash;
with Ada.Text_IO;

procedure Dummy_dico is

   package Dictionaries is new Ada.Containers.Hashed_Maps
             (Ada.Strings.Unbounded.Unbounded_String,
              Ada.Strings.Unbounded.Unbounded_String,
              Ada.Strings.Unbounded.Hash,
              Ada.Strings.Unbounded."=",
              Ada.Strings.Unbounded."=");

   use Dictionaries;

   function "-" (Source : Ada.Strings.Unbounded.Unbounded_String) return String
     renames Ada.Strings.Unbounded.To_String;
   function "+" (Source : String) return Ada.Strings.Unbounded.Unbounded_String
     renames Ada.Strings.Unbounded.To_Unbounded_String;

   procedure Translate( dico: Map; from: String ) is
     use Ada.Text_IO;
   begin
     Put_Line( from & " ---> " & (-Element(dico,+from)) );
   end Translate;

   dico_F_to_E: Map;
   c: Cursor;
   s: Boolean;

begin
   Insert(dico_F_to_E, +"souris", +"mouse", c, s);
   Insert(dico_F_to_E, +"chat",   +"cat",   c, s);
   Insert(dico_F_to_E, +"chien",  +"dog",   c, s);
   Insert(dico_F_to_E, +"cheval", +"horse", c, s);
   --
   Translate(dico_F_to_E, "chien");
   Translate(dico_F_to_E, "chat");
end;



^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2008-04-29 20:59 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2008-04-29  9:12 Dynamic allocation of named arrays Kim Rostgaard Christensen
2008-04-29  9:55 ` Thomas Locke
2008-04-29 18:37   ` DScott
2008-04-29 19:38 ` Simon Wright
2008-04-29 20:14 ` Gautier
2008-04-29 20:59   ` Gautier

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