From: Matthew Heaney <matthew_heaney@acm.org>
Subject: Re: Beginner's questions
Date: 1999/05/02
Date: 1999-05-02T00:00:00+00:00 [thread overview]
Message-ID: <m3k8urxorq.fsf@mheaney.ni.net> (raw)
In-Reply-To: 372da49c.12366381@news.rwth-aachen.de
marcoschmidt@geocities.com (Marco Schmidt) writes:
> 1) I couldn't find out how to use bitwise operations "and" and "or"
> (which would be "and" / "or" in Pascal and "&" / "|" in C). Do I have
> to include a certain package?
Those operations predefined for all modular types. Were you using an
integer type?
> 2) I want to use a fixed-size array of constant strings to store some
> names which do not all have the same length, but no name is longer
> than 20 characters. My approach looks like this:
>
> type t_my_array is array(0..17) of String;
>
> names : constant t_my_array := ("string 1", "string 2", ...,
> "string 18");
>
> The compiler doesn't like this (unconstrained element type). If I
> replace String with String(0..19), it is compiled, but a runtime error
> is raised. How should I do it?
You could use an instantation of
Ada.Strings.Bounded.Generic_Bounded_Length.
Or you could use Ada.Strings.Unbounded.
Or you could use a discriminated record:
subtype Name_Length_Range is Natural range 0 .. 20;
type Name_Buffer (Length : Name_Length_Range := 0) is
record
Name : String (1 .. Length);
end record;
function "+" (R : String) return Name_Buffer is
begin
return (R'length, R);
end;
type Name_Array is array (Positive range <>) of Name_Buffer;
Names : Name_Array :=
(+"Heckle",
+"Jeckle",
+"Marvelous",
+"Magpies",
+"Let's have some fun",
+"With name arrays");
next prev parent reply other threads:[~1999-05-02 0:00 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
1999-05-02 0:00 Beginner's questions Marco Schmidt
1999-05-02 0:00 ` Matthew Heaney [this message]
1999-05-03 0:00 ` Marco Schmidt
1999-05-03 0:00 ` Matthew Heaney
1999-05-03 0:00 ` Andreas Winckler
1999-05-03 0:00 ` Matthew Heaney
1999-05-03 0:00 ` Andreas Winckler
1999-05-03 0:00 ` David Starner
1999-05-04 0:00 ` Andreas Winckler
1999-05-04 0:00 ` Larry Kilgallen
1999-05-04 0:00 ` Martin C. Carlisle
1999-05-04 0:00 ` Larry Kilgallen
1999-05-05 0:00 ` Andreas Winckler
1999-05-03 0:00 ` dennison
1999-05-04 0:00 ` Tucker Taft
1999-05-04 0:00 ` dennison
1999-05-10 0:00 ` Tucker Taft
1999-05-04 0:00 ` czgrr
1999-05-04 0:00 ` Nick Roberts
1999-05-07 0:00 ` Robert Dewar
1999-05-07 0:00 ` David Starner
1999-05-08 0:00 ` ak
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox