comp.lang.ada
 help / color / mirror / Atom feed
From: Matthew Heaney <mheaney@on2.com>
Subject: Re: String declaration and initialization
Date: Thu, 22 May 2008 09:16:19 -0700 (PDT)
Date: 2008-05-22T09:16:19-07:00	[thread overview]
Message-ID: <05bce551-cd98-417c-8664-847b29124c19@l64g2000hse.googlegroups.com> (raw)
In-Reply-To: g144j0$4cn$1@registered.motzarella.org

On May 22, 11:47 am, Sébastien <seb.mor...@gmail.com> wrote:
>
> declare
>         buffer: String; --  Error at compile time
> begin
>         case SomeTest is
>                 case TEST1 =>
>                         buffer := "Test1";
>                 case TEST2 =>
>                         buffer := "Test2";
>         end case;
>         MyTreatment1(buffer, buffer'Size);
>         MyTreatment2(buffer, buffer'Size);
>         MyTreatment3(buffer, buffer'Size);
> end;
>
> But How can I do this since I can't declare a string without constraint?

The simplest way is to use a bounded or unbounded string:

declare
  S : Unbounded_String;
begin
  case Some_Test is
     when T1 => S := To_Unbounded_String ("test1");
  ...
end;

Another way is to use a table like you can in C:

declare
  Test1 : aliased constant String := "test1";
  Test2 : aliased constant String := "test2";

  type Table_Type is array (Test_Type) of
    not null access constant String;

  Table : constant Table_Type :=
    (T1 => Test1'Access,
     T2 => Test2'Access,
     ...);

  S : String renames Table (Some_Test).all;
begin
...
end;




  parent reply	other threads:[~2008-05-22 16:16 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-05-22 15:47 String declaration and initialization Sébastien
2008-05-22 16:05 ` Dmitry A. Kazakov
2008-05-22 16:47   ` Sébastien
2008-05-23  8:18     ` Dmitry A. Kazakov
2008-05-23  9:33       ` Sébastien
2008-05-22 16:16 ` Matthew Heaney [this message]
2008-05-22 16:58   ` Sébastien
2008-05-22 17:11     ` Robert A Duff
2008-05-22 18:16     ` Matthew Heaney
2008-05-22 20:01     ` Jeffrey R. Carter
2008-05-22 16:40 ` Jean-Pierre Rosen
2008-05-22 18:09 ` Martin Krischik
replies disabled

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