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;
next prev 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