comp.lang.ada
 help / color / mirror / Atom feed
From: Niklas Holsti <niklas.holsti@tidorum.invalid>
Subject: Re: Weird behavior of Get character with trailing new lines.
Date: Sat, 23 Sep 2023 17:03:14 +0300	[thread overview]
Message-ID: <kn89h2F64t4U1@mid.individual.net> (raw)
In-Reply-To: <uematg$o2i1$1@dont-email.me>

On 2023-09-23 12:25, Dmitry A. Kazakov wrote:
> On 2023-09-23 10:39, Niklas Holsti wrote:
>> On 2023-09-23 10:02, J-P. Rosen wrote:
> 
>>> That's why I never check End_Of_File, but handle the End_Error 
>>> exception. It always works.
>>
>> True, but it may not be convenient for the overall logic of the 
>> program that reads the file. That program often wants do to something 
>> with the contents, after reading the whole file, and having to enter 
>> that part of the program through an exception does complicate the code 
>> a little.
> 
> It rather simplifies the code. 


Oh?


> You exit the loop and do whatever is necessary there.

That is exactly what happens in the "while not End_Of_File" loop.

If you want to use End_Error instead, you have to add an exception 
handler, and if you want to stay in the subprogram's statement sequence 
without entering the subprogram-level exception handlers, you have to 
add a block to contain the reading loop and make the exception handler 
local to that block.

To me that looks like adding code -> more complex. Of course not much 
more complex, but a little, as I said.


> Testing for the file end is unreliable and non-portable. Many types
> of files simply do not support that test.In other cases the test is
> not file immutable with the side effects that can change the program
> logic.

I suppose you are talking about the need for End_Of_File to possibly 
read ahead past a line terminator? If not, please clarify.

That said, I certainly think that a program reading files should be 
prepared to handle End_Error, especially if a file is read at several 
places in the program (and not in a single loop as in the present program).

  reply	other threads:[~2023-09-23 14:03 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-09-22 19:30 Weird behavior of Get character with trailing new lines Blady
2023-09-22 19:52 ` Niklas Holsti
2023-09-22 20:05 ` Jeffrey R.Carter
2023-09-23  7:02   ` J-P. Rosen
2023-09-23  8:39     ` Niklas Holsti
2023-09-23  9:25       ` Dmitry A. Kazakov
2023-09-23 14:03         ` Niklas Holsti [this message]
2023-09-24  7:50           ` Dmitry A. Kazakov
2023-09-25 19:55       ` Blady
2023-09-26  5:53     ` Randy Brukardt
replies disabled

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