comp.lang.ada
 help / color / mirror / Atom feed
From: Matthew Heaney <matthew_heaney@acm.org>
Subject: Re: Length & Last Attributes.
Date: 1998/10/13
Date: 1998-10-13T00:00:00+00:00	[thread overview]
Message-ID: <m37ly562rw.fsf@mheaney.ni.net> (raw)
In-Reply-To: 6vtr9b$hp9$1@platane.wanadoo.fr

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain, Size: 1395 bytes --]

"BARDIN Marc" <Marc.Bardin@wanadoo.fr> writes:

>     How to get corrects values for Length & Last attributes for a string
> AFTER it has been defined in the program ?
> In the following example program, these 2  attributes aren't corrects after
> Max_Descripteur value is known.

procedure Op (S : in String) is
begin
   ... S'First ...
   ... S'Last ...
   ... S'Length ...


> 
> Anticipated thanks.
> Marc
> 
> 
> with Text_Io; use Text_Io;
> procedure Test_Tri_Fichier is
> 
>    Max_Descripteur : Positive;
>    subtype Ch_L_Cha�ne is String (1..Max_Descripteur);

The rule is "linear elaboration."  The problem is that you elaborate the
subtype Ch_L_Chane using object Max_Descipteur, which hasn't been given
a value!  

So your subtype will have some value for T'Last, but who knows what it
will be?

The solution is to elaborate the subtype AFTER giving Max_Descripteur a
value.


>    Fin_Sc : Positive range Ch_L_Cha�ne'range;
>    package Ent_Es is new Text_Io.Integer_Io (Integer);
> 
> begin
>    Max_Descripteur := 5;

Now declare your subtype:

   declare
      subtype Ch_L_Chane is String (1 .. Max_Descripteur);
   begin
      ... Ch_L_Chane'Length ...
      ... Ch_L_Chane'Last ...      

      

>    Put (" Length : "); Ent_Es.Put (Ch_L_Cha�ne'Length, 5);
>    Fin_Sc := Ch_L_Cha�ne'Last;
>    Put (" Fin_Sc : "); Ent_Es.Put (Fin_Sc, 5);
> end Test_Tri_Fichier;




      parent reply	other threads:[~1998-10-13  0:00 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
1998-10-12  0:00 Length & Last Attributes BARDIN Marc
1998-10-12  0:00 ` Steve Doiel
1998-10-13  0:00 ` Dale Stanbrough
1998-10-13  0:00 ` Matthew Heaney [this message]
replies disabled

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