comp.lang.ada
 help / color / mirror / Atom feed
From: Stephen Leake <Stephen.Leake@gsfc.nasa.gov>
Subject: Re: Raising IO_EXCEPTIONS.END_ERROR in a loop
Date: 1997/11/19
Date: 1997-11-19T00:00:00+00:00	[thread overview]
Message-ID: <347302AE.7DFF@gsfc.nasa.gov> (raw)
In-Reply-To: 3472EEAE.65B43D71@silver.jhuapl.edu


Scott Ingram wrote:
> 
> The following fragment compiles, and even runs correctly through
> one iteration but blows up when re-reading a string from standard
> input.  The exception that is raised makes me think that the
> string variable used is still visible the second time through--
> but shouldn't it pass out of existence at the end of the block?
> or what am I misunderstanding?
>  <see patched code below>

You need to be more precise about what happens - "blows up" is not
something my computer does very often :). Does it raise an exception?
crash your OS? Are you running on Windows or some other OS? You are
using Get_Immediate, which is (unfortunately), system-dependent. What
compiler are you using?

Jumping way out on a limb, I assume you have the same system I do
(Windows 95, GNAT 3.09) (yes, I'll upgrade to GNAT 3.10 one of these
days; I was holding out for an ada-aware debugger :( ). I compiled and
ran your code, after adding the missing declarations. It works fine,
except on this system Get_Immediate doesn't return until the user hits
<return>, so you need to add Skip_Line. 

Hope this helps.
> --
> Scott Ingram
> Sonar Processing and Analysis Laboratory
> Johns Hopkins University Applied Physics Laboratory
with Ada.Text_IO; use Ada.Text_IO;

procedure Test is
   OS_Line_Length : constant := 80;
   Continue : Character := 'Y';
begin
   loop
      exit when Continue = 'n' or Continue = 'N';
      Get_Variable:
      declare
         Variable_Name : String (1..OS_Line_Length);
         Name_Length : Natural;
      begin --Get_Variable
         Put ("Enter the name of the variable to examine: ");
         Get_Line (Variable_Name, Name_Length);
         Put_Line ("The variable is set to " &
                   Variable_Name(1..Name_Length));
      end Get_Variable;
      Put ("Examine another (y|Y)? ");
      Get_Immediate (Continue);

      
      Skip_Line; -- added this line --
   end loop;

end Test;

-- 
- Stephe




  reply	other threads:[~1997-11-19  0:00 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
1997-11-19  0:00 Raising IO_EXCEPTIONS.END_ERROR in a loop Scott Ingram
1997-11-19  0:00 ` Stephen Leake [this message]
1997-11-19  0:00   ` Scott Ingram
replies disabled

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