comp.lang.ada
 help / color / mirror / Atom feed
From: Mats Weber <Mats.Weber@elca-matrix.ch>
Subject: Re: Reading a line of arbitrary length
Date: 1997/02/14
Date: 1997-02-14T00:00:00+00:00	[thread overview]
Message-ID: <3304839D.1B4@elca-matrix.ch> (raw)
In-Reply-To: dsmith-1302971702290001@dsmith.clark.net


>   Longest_Guess : Natural := 40;

You can't do this ! This global variable makes your code unusable with
tasks.

>   function Get_Line return String is
>     Buffer : String (1 .. Longest_Guess);
>     Last   : Natural;
>   begin
>     Ada.Text_IO.Get_Line (Buffer, Last);
> 
>     if Last = Buffer'Last then
>       Longest_Guess := Longest_Guess + Longest_Guess/2; -- 1.5x
>       return Buffer & Get_Line;
>     else
>       return Buffer(1..Last);
>     end if;
>   end Get_Line;

I would change it to:

  function Get_Line (Longest_Guess : Positive) return String is 
    Buffer : String (1 .. Longest_Guess);
    Last   : Natural;
  begin
    Ada.Text_IO.Get_Line (Buffer, Last);

    if Last = Buffer'Last then
      return Buffer & 
             Get_Line
               (Longuest_Guess => Longest_Guess + Longest_Guess/2);
    else
      return Buffer(1..Last);
    end if;
  end Get_Line;

  function Get_Line return String is
  begin
    return Get_Line(Longuest_Guess => 40);
  end;




  parent reply	other threads:[~1997-02-14  0:00 UTC|newest]

Thread overview: 77+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
1997-02-12  0:00 Reading a line of arbitrary length Thomas Koenig
1997-02-12  0:00 ` Robert Dewar
1997-02-12  0:00 ` David C. Hoos, Sr.
1997-02-13  0:00   ` Jeff Carter
1997-02-13  0:00     ` Ted Dennison
1997-02-13  0:00       ` Rex Reges
1997-02-15  0:00         ` Matthew Heaney
1997-02-13  0:00       ` Larry Kilgallen
1997-02-13  0:00       ` Geert Bosch
1997-02-19  0:00     ` Jean-Etienne Doucet
1997-02-21  0:00       ` Mats Weber
1997-02-22  0:00         ` Robert Dewar
1997-02-24  0:00   ` Robert Dewar
1997-02-13  0:00 ` Rex Reges
     [not found]   ` <dewar.855848896@merv>
     [not found]     ` <dsmith-1302971702290001@dsmith.clark.net>
1997-02-14  0:00       ` Mats Weber [this message]
     [not found]       ` <33047186.463F@mds.lmco.com>
1997-02-14  0:00         ` Robert Dewar
     [not found]     ` <33037A74.44AF@mds.lmco.com>
1997-02-14  0:00       ` Mats Weber
1997-02-15  0:00         ` Robert Dewar
1997-02-17  0:00           ` Mats Weber
1997-02-17  0:00             ` Robert Dewar
     [not found]       ` <dewar.855929857@merv>
1997-02-14  0:00         ` Rex Reges
1997-02-14  0:00         ` Gene Ouye
1997-02-15  0:00           ` Robert Dewar
1997-02-15  0:00             ` Brian Rogoff
1997-02-15  0:00               ` Robert Dewar
1997-02-16  0:00                 ` Brian Rogoff
1997-02-17  0:00                   ` Robert Dewar
1997-02-16  0:00   ` Jon S Anthony
1997-02-18  0:00     ` Robert Dewar
1997-02-22  0:00   ` Jon S Anthony
1997-02-21  0:00     ` Brian Rogoff
1997-02-22  0:00       ` Robert Dewar
1997-02-22  0:00         ` Brian Rogoff
1997-02-23  0:00     ` Robert Dewar
1997-02-25  0:00   ` Jon S Anthony
1997-02-26  0:00     ` Robert Dewar
1997-02-27  0:00   ` Jon S Anthony
1997-03-02  0:00     ` Robert Dewar
1997-03-03  0:00       ` Fergus Henderson
1997-03-03  0:00         ` Robert Dewar
1997-03-03  0:00         ` Larry Kilgallen
1997-03-04  0:00           ` Fergus Henderson
1997-03-05  0:00           ` Jon S Anthony
1997-03-02  0:00     ` Robert Dewar
1997-03-03  0:00   ` Jon S Anthony
1997-03-03  0:00   ` Jon S Anthony
1997-03-03  0:00   ` Jon S Anthony
1997-03-03  0:00     ` Robert Dewar
1997-03-03  0:00   ` Jon S Anthony
1997-03-03  0:00     ` Robert Dewar
1997-03-04  0:00       ` Thomas Koenig
1997-03-05  0:00         ` Larry Kilgallen
1997-03-06  0:00           ` Robert Dewar
1997-03-06  0:00         ` Robert Dewar
     [not found]     ` <dewar.857447653@m <JSA.97Mar4154951@alexandria>
1997-03-05  0:00       ` Robert A Duff
1997-03-05  0:00     ` Jon S Anthony
1997-03-06  0:00       ` Robert A Duff
1997-03-06  0:00         ` Robert Dewar
1997-03-04  0:00   ` Jon S Anthony
1997-03-05  0:00     ` Larry Kilgallen
1997-03-06  0:00       ` Fergus Henderson
1997-03-06  0:00         ` Really more GC talk (was: Reading a line of arbitrary length) Larry Kilgallen
1997-03-11  0:00           ` Fergus Henderson
1997-03-11  0:00             ` Robert Dewar
1997-03-12  0:00               ` Fergus Henderson
1997-03-04  0:00   ` Reading a line of arbitrary length Jon S Anthony
1997-03-05  0:00   ` Jon S Anthony
1997-02-16  0:00 ` Matthew Heaney
1997-02-16  0:00   ` Robert Dewar
1997-02-16  0:00     ` Matthew Heaney
1997-02-17  0:00       ` Robert Dewar
1997-02-25  0:00 ` Jon S Anthony
1997-03-04  0:00 ` Fergus Henderson
1997-03-05  0:00   ` Richard A. O'Keefe
1997-03-06  0:00     ` Fergus Henderson
1997-03-06  0:00       ` Robert Dewar
1997-03-11  0:00         ` Fergus Henderson
replies disabled

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