comp.lang.ada
 help / color / mirror / Atom feed
From: Simon Wright <simon@pushface.org>
Subject: Re: Newbie, returning strings in Ada
Date: 16 Feb 2003 11:58:44 +0000
Date: 2003-02-16T11:58:44+00:00	[thread overview]
Message-ID: <x7vof5cigi3.fsf@smaug.pushface.org> (raw)
In-Reply-To: 87525c4f.0302160333.de26f1@posting.google.com

general@ciberpiula.net (Santiago A.) writes:

> 1) This case works fine:
>       Put_Line (Sock, get_line(Socket) );
> 
>    where put_line spec is:  
> 
>       procedure Put_Line (Socket : in Socket_FD'Class;
>                          Str : in String)
> 
> 2) This case works fine too:
> 
>         var U_Line:Unbounded_String;
>           ....
>         U_Line:=To_Unbounded_String(Get_Line(Sock));
> 
> 
> 3) This case fails 
> 
>         var F_Line:string:="1234567890";   
>          .....
>         F_Line:=Get_Line(Sock);
> 
> I type two characters in the client side and press enter. Everything
> seems to work fine, the server reads the first character, reads the
> second,reads the LF, enters in the return sentence and... never
> returns to the caller.
> 
> Is there any problem in a function that returns a string with lenght 2
> into a variable string(10)?
> 
> Must the returned string and the variable that will hold the result be
> of the same length?

I don't think you can have actually written

       var F_Line:string:="1234567890";

!!!

Anyway, you are quite right, the returned string and the variable that
will hold the result must be of the same length.

Fortunately you can write

  loop
     declare
        f_line : constant string := get_line (sock);
     begin
        -- use f_line

because each time you enter the declare block the compiler creates a
new f_line of the length required to hold the actual string returned
by this particular call to get_line.

(the "constant" is just a programming style thing, declare things
constant if you don't need them to be variables).



  reply	other threads:[~2003-02-16 11:58 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-02-16 11:33 Newbie, returning strings in Ada Santiago A.
2003-02-16 11:58 ` Simon Wright [this message]
2003-02-16 19:23 ` 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