From: Niklas Holsti <niklas.holsti@tidorum.invalid>
Subject: Re: Problems with String processing
Date: Sat, 23 Oct 2010 23:24:14 +0300
Date: 2010-10-23T23:24:14+03:00 [thread overview]
Message-ID: <8igujeFc2tU1@mid.individual.net> (raw)
In-Reply-To: <8igu5kF70sU1@mid.individual.net>
George wrote:
> Hi All,
>
> I have some problems with string processing. My program looks like this:
>
> begin
> -- Ada.Command_Line.Argument_Count is "0" if
> -- a) Command_Line.Argument_Count is not implemented (Compiler, OS)
> -- b) no arguments given
> if Ada.Command_Line.Argument_Count > 0 then
> for counter in 1..Ada.Command_Line.Argument_Count loop
> Arg = Ada.Characters.Handling.To_Upper(Ada.Command_Line.Argument
> (counter)); -- this assignment is the problem
Firstly, that isn't an assignment, since you wrote "=". You should write
":=" for an assignment.
Secondly, as you have now learned, the Ada String type is a fixed-length
string. The simplest solution is to declare the Arg variable as a
constant String that is given its value (and length) in the declaration
itself:
declare
Arg : constant String := Ada.Characters.Handling.To_Upper (
Ada.Command_Line.Argument (counter));
begin
> if Arg = "ADA83" then
> Ada83;
> elsif Arg = "ADA95" then
> Ada95;
> elsif Arg = "ADA2005" then
> Ada2005;
> elsif Arg = "ATTRIBUTES" then
> Attributes;
> elsif Arg = "ALL" then
> Ada83;
> Ada95;
> Ada2005;
> Attributes;
> Sources;
> Author;
> else -- unknown argument
> Ada.Text_IO.put_line("Given Argument is unknown!");
> end if;
end;
> end loop;
>
> The assignment Arg = Ada.Characters.Handling.To_Upper
> (Ada.Command_Line.Argument(counter)); will not work due to a CONSTRAINT
> ERROR. The problem is that the command line arguments given are of
> different length. Ada expects the string to match exactly the length of
> the defined variable "Arg" with 10 characters.
>
> How could I solve that problem?
Another solution is to use Ada.Strings.Unbounded.Unbounded_String, which
is the main Ada type for variable-length strings.
HTH,
--
Niklas Holsti
Tidorum Ltd
niklas holsti tidorum fi
. @ .
next prev parent reply other threads:[~2010-10-23 20:24 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-10-23 20:16 Problems with String processing George
2010-10-23 20:24 ` Niklas Holsti [this message]
2010-10-23 20:25 ` Dmitry A. Kazakov
2010-10-23 20:43 ` George
2010-10-23 23:59 ` Jeffrey Carter
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox