comp.lang.ada
 help / color / mirror / Atom feed
From: Jeffrey Carter <jrcarter@acm.org>
Subject: Re: File IO problem
Date: Fri, 06 Dec 2002 17:13:45 GMT
Date: 2002-12-06T17:13:45+00:00	[thread overview]
Message-ID: <3DF0DAC4.1050102@acm.org> (raw)
In-Reply-To: d40d7104.0212052227.3aaa570a@posting.google.com

prashna wrote:
> Hi all,
> Pls have a look at the following code
> 
> with text_Io;
> use text_io;
> Procedure FILE_IO_DEMO is
>    FILE_I, FILE_O : FILE_TYPE;
>    S : STRING(1..80);
>    Len : Integer;
> begin
>    open (FILE_I, IN_FILE,"junk.txt");
>    create(FILE_O, OUT_FILE, "output.txt");
>    while END_OF_FILE(FILE_I) loop
>       GET_LINE(FILE_I, S, Len);
>       PUT_LINE(S(1..LEN));
>       PUT_LINE(FILE_O,S(1..Len));
>    end loop;
> end;
> 
> The contents of the file junk.txt is
> lafeosbv 
> qfowep p4gowb
> hfwevwpbv
> 
> The program is creating output.txt but it contents are nil.

This is an example of why, in 1980, Ichbiah, Barnes, & Firth recommended 
not using while loops. It is natural to think about the exit condition 
for a loop, but a while loop requires its opposite, the continuation 
condition.

Had this been written with an exit:

loop
    exit when End_Of_File (File_I);

there would not have been a problem.

-- 
Jeff Carter
"From this day on, the official language of San Marcos will be Swedish."
Bananas




  parent reply	other threads:[~2002-12-06 17:13 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2002-12-06  6:27 File IO problem prashna
2002-12-06  7:14 ` Martin Dowie
2002-12-06 11:50   ` File IO problem - silly mistake :o( prashna
2002-12-07 13:33     ` SteveD
2002-12-06 17:13 ` Jeffrey Carter [this message]
  -- strict thread matches above, loose matches on Subject: below --
2002-12-06  7:07 File IO problem Grein, Christoph
replies disabled

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