From: Robert Spooner <rls19@psu.edu>
Subject: Re: Computer Language Shootout
Date: Fri, 18 Jul 2003 14:04:41 -0400
Date: 2003-07-18T14:04:41-04:00 [thread overview]
Message-ID: <bf9crp$18rg$1@f04n12.cac.psu.edu> (raw)
In-Reply-To: <wcc65m0omev.fsf@shell01.TheWorld.com>
Robert A Duff wrote:
> "Jean-Pierre Rosen" <rosen@adalog.fr> writes:
>
>
>>This one reads a line with no length limit:
>>
>>function Get_Line return String is
>> Buffer : String (1..500); -- or whatever
>> Last : Natural;
>>begin
>> Get_Line (Buffer, Last);
>> if Last < Buffer'Last then
>> return Buffer (1..Last);
>> else
>> return Buffer & Get_Line;
>> end if;
>>end Get_Line;
>>
>>In most cases, there will be only one call, while having no upper limit.
>>The size of the buffer is just a matter of optimization.
>
>
> This is a nice trick, but I suggest you grow the buffer exponentially,
> in case lines are very long. Like, double it on each recursion level.
>
> Too bad this was not included in Text_IO itself. It would save
> beginners a lot of trouble. Sigh.
>
> - Bob
I tried this using the following program and gnat version 3.13p on
windows professional 2000 with the following result:
with Ada.Text_IO;
procedure No_String_Length_Limit_Test is
package Tio renames Ada.Text_IO;
function Get_Line (Buffer_Size : Positive := 1) return String is
Buffer : String (1..Buffer_Size);
Last : Natural;
begin
Tio.Get_Line (Buffer, Last);
if Last < Buffer'Last then
return Buffer(1..Last);
else
return Buffer & Get_Line (2*Buffer_Size);
end if;
end Get_Line;
begin -- No_String_Length_Limit_Test
loop
Tio.Put ("Enter a message, <Return> to exit: ");
declare
The_Message : String := Get_Line;
begin
exit when The_Message'Length = 0;
Tio.Put_Line ("The message is " & The_Message);
end;
end loop;
end No_String_Length_Limit_Test;
no_string_length_limit_test.adb:16:26: ambiguous operand for concatenation
no_string_length_limit_test.adb:16:26: possible interpretation at line 8
Done--error detected.
Can someone tell me why the operand is ambiguous?
Bob
--
Robert L. Spooner
Registered Professional Engineer
Associate Research Engineer
Intelligent Control Systems Department
Applied Research Laboratory Phone: (814) 863-4120
The Pennsylvania State University FAX: (814) 863-7841
P. O. Box 30
State College, PA 16804-0030 rls19@psu.edu
next prev parent reply other threads:[~2003-07-18 18:04 UTC|newest]
Thread overview: 78+ messages / expand[flat|nested] mbox.gz Atom feed top
2003-07-11 12:05 Computer Language Shootout Craig Carey
2003-07-11 12:18 ` Preben Randhol
2003-07-11 12:50 ` Preben Randhol
2003-07-15 15:15 ` Matthew Heaney
2003-07-15 23:46 ` Robert I. Eachus
2003-07-16 4:37 ` Matthew Heaney
2003-07-16 18:01 ` Robert I. Eachus
2003-07-16 21:35 ` Matthew Heaney
2003-07-17 9:38 ` Preben Randhol
2003-07-17 16:29 ` Wesley Groleau
2003-07-17 17:36 ` Jean-Pierre Rosen
2003-07-17 20:56 ` Preben Randhol
2003-07-17 21:47 ` Robert A Duff
2003-07-18 18:04 ` Robert Spooner [this message]
2003-07-18 18:48 ` David C. Hoos
2003-07-19 9:51 ` Preben Randhol
2003-07-21 7:21 ` Jean-Pierre Rosen
2003-07-23 20:34 ` Robert Spooner
2003-07-23 22:22 ` Robert I. Eachus
2003-07-18 21:22 ` Pascal Obry
2003-07-19 19:04 ` Robert A Duff
2003-07-19 21:29 ` Pascal Obry
2003-07-19 23:14 ` Samuel Tardieu
2003-07-20 0:26 ` Robert I. Eachus
2003-07-20 8:44 ` Samuel Tardieu
2003-07-20 13:28 ` Robert I. Eachus
2003-07-20 17:10 ` Samuel Tardieu
2003-07-20 22:43 ` Robert I. Eachus
2003-07-21 8:31 ` Samuel Tardieu
2003-07-21 14:39 ` Hyman Rosen
2003-07-21 15:23 ` Samuel Tardieu
2003-07-21 15:46 ` Hyman Rosen
2003-07-21 16:09 ` tmoran
2003-07-21 17:52 ` Hyman Rosen
2003-07-21 16:14 ` Samuel Tardieu
2003-07-21 17:55 ` Hyman Rosen
2003-07-22 9:07 ` Preben Randhol
2003-07-22 13:21 ` Hyman Rosen
2003-07-23 9:28 ` Preben Randhol
2003-07-23 9:42 ` Vinzent Hoefler
2003-07-23 10:35 ` Preben Randhol
2003-07-23 22:19 ` Randy Brukardt
2003-07-21 8:53 ` Dmitry A. Kazakov
2003-07-21 11:00 ` Jeffrey Creem
2003-07-21 13:39 ` Dmitry A. Kazakov
2003-07-17 23:32 ` Wesley Groleau
2003-07-18 7:36 ` Dmitry A. Kazakov
2003-07-18 8:05 ` Thomas Wolf
2003-07-18 9:11 ` Jean-Pierre Rosen
2003-07-18 17:31 ` Matthew Heaney
2003-07-17 20:53 ` Preben Randhol
2003-07-17 23:36 ` Wesley Groleau
2003-07-16 7:11 ` Preben Randhol
2003-07-11 21:58 ` Matthew Heaney
2003-07-14 18:46 ` Matthew Heaney
2003-07-14 23:08 ` Matthew Heaney
2003-07-16 3:20 ` Isaac Gouy
2003-07-16 4:42 ` Matthew Heaney
2003-07-16 15:27 ` Isaac Gouy
-- strict thread matches above, loose matches on Subject: below --
2001-11-03 4:15 Using "with function" Mark Lundquist
2001-11-03 5:11 ` Computer Language Shootout Eric Merritt
2001-11-03 6:50 ` tmoran
2001-11-03 7:15 ` Al Christians
2001-11-03 8:52 ` martin.m.dowie
2001-11-03 14:04 ` Ted Dennison
2001-11-03 14:24 ` martin.m.dowie
2001-11-03 14:49 ` Larry Kilgallen
2001-11-03 23:03 ` research@ijs.co.nz
2001-11-04 6:39 ` tmoran
2001-11-04 13:44 ` Larry Kilgallen
2001-11-05 0:59 ` Adrian Hoe
2001-11-05 8:04 ` David Brown
2001-11-06 6:36 ` AG
2001-11-06 8:05 ` tmoran
2001-11-07 8:58 ` AG
2001-11-06 12:07 ` Larry Kilgallen
2001-11-07 6:19 ` Richard Riehle
2001-11-04 15:59 ` Preben Randhol
2001-11-04 20:04 ` martin.m.dowie
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox