From: adam@irvine.com (Adam Beneschan)
Subject: Re: Wide_Text_IO: bad data in text file
Date: 25 Oct 2002 08:22:15 -0700
Date: 2002-10-25T15:22:15+00:00 [thread overview]
Message-ID: <b4682ab7.0210250722.41ac473a@posting.google.com> (raw)
In-Reply-To: mailman.1035522182.23022.comp.lang.ada@ada.eu.org
"Grein, Christoph" <christoph.grein@eurocopter.com> wrote in message news:<mailman.1035522182.23022.comp.lang.ada@ada.eu.org>...
> > The RM doesn't specifically address this issue, as far as I can tell.
> > Data_Error seems to be intended for cases where characters can be read
> > from the file but they're not in the proper syntax for an integer
> > (when using an instance of Integer_IO), or a float, or whatever. The
> > closest thing I could find was A.13(10), which says "Use_Error is
> > propagated if an operation is attempted that is not possible for
> > reasons that depend on characteristics of the external file". When I
> > tried a test using GNAT, it raised Constraint_Error, which seems
> > counterintuitive.
>
> Exactly when did Gnat raise Constraint_Error? At the Get? Or later when you
> use the value read?
The exception was raised by Get.
> My interpretation of the RM is that Data_Error should be raised, however it
> need not be raised if this would be too much of a burden (cannot be easily
> done). If Data_Error is not raised, you have invalid data.
>
> The 'Valid attribute can be used to insure that the data read really is valid
> (i.e. has a legal interpretation). This attribute is there for just this
> purpose.
Sorry, this doesn't make sense to me. Unless I'm missing something, I
don't think it's possible for Wide_Character'Value ever to return
False in GNAT or in most other implementations. This is because a
Wide_Character would be represented in memory by a 16-bit object, and
all 2**16 possible 16-bit values are valid representations for a
Wide_Character. The issue here isn't whether an Ada object (which
would be in memory or registers) is valid but whether a bit sequence
in the *file* is valid. (In UTF-8, e.g., it takes 8 to 24 bits to
represent a Wide_Character.) I don't see how 'Valid can be used to
test that.
-- Adam
next prev parent reply other threads:[~2002-10-25 15:22 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2002-10-25 4:56 Wide_Text_IO: bad data in text file Grein, Christoph
2002-10-25 11:48 ` Jean-Pierre Rosen
2002-10-25 15:22 ` Adam Beneschan [this message]
2002-10-25 17:22 ` Frank J. Lhota
2002-10-26 1:21 ` Adam Beneschan
-- strict thread matches above, loose matches on Subject: below --
2002-10-24 20:32 Adam Beneschan
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox