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).
next prev parent 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