comp.lang.ada
 help / color / mirror / Atom feed
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



  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