From: "Warren W. Gay VE3WWG" <ve3wwg@home.com>
Subject: Re: Another problem with stream reading.
Date: Tue, 26 Mar 2002 17:54:12 GMT
Date: 2002-03-26T17:54:12+00:00 [thread overview]
Message-ID: <3CA0B5C4.2060804@home.com> (raw)
In-Reply-To: mailman.1017082205.9199.comp.lang.ada@ada.eu.org
Just shooting from the hip here, I think the problem is that
you gave the compiler an impossible assignment. By that, I
mean that you've declared type Byte to have integer range
0..255 and at the same time said its size has to be 8 bits.
There is no room for that range and a sign bit (since it is
integer here) to exist in 8 bits (you need 9). As a result
of lying to HAL, HAL decided to disregard your statement
"for Byte'Size use 8" and used 16 instead.
If you want signed numbers, you need to fix the range. If
you want unsigned numbers, then you need a modulo type.
Erik Sigra wrote:
> Now I have the program
>
> with Ada; use Ada;
> with Text_IO; use Text_IO;
> with Ada.Streams; use Streams;
> with Ada.Streams.Stream_IO; use Stream_IO;
>
> procedure Streamtest is
> The_File : Stream_IO.File_Type;
> begin
> Open (The_File, In_File, "data");
> declare
> The_Stream : Stream_Access := Stream (The_File);
> type Byte is range 0 .. 255;
> for Byte'Size use 8;
> B : Byte;
> begin
> while not End_Of_File (The_File) loop
> Byte'Read (The_Stream, B);
> Put_Line ("Read B = " & B'Img);
> end loop;
> end;
> end Streamtest;
>
>
> The data file contains
> "����" (hexadecimal "ff fe fd fc") (decimal "255 254 253 252). The output of
> the program is:
> Read B = 255
> Read B = 253
>
>
> The problem is that it reads 2 bytes instead of 1 and thus skips each second
> byte. Why?
>
--
Warren W. Gay VE3WWG
http://home.cogeco.ca/~ve3wwg
next prev parent reply other threads:[~2002-03-26 17:54 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2002-03-25 18:53 Another problem with stream reading Erik Sigra
2002-03-25 19:01 ` Dan Andreatta
2002-03-25 19:14 ` Erik Sigra
2002-03-25 22:20 ` Jeffrey Carter
2002-03-25 22:28 ` Stephen Leake
2002-03-26 17:54 ` Warren W. Gay VE3WWG [this message]
2002-03-27 15:53 ` Erik Sigra
2002-03-27 21:22 ` Warren W. Gay VE3WWG
2002-03-27 22:50 ` Dan Andreatta
2002-03-27 23:55 ` Randy Brukardt
2002-03-28 0:18 ` David Bolen
2002-03-28 22:30 ` Randy Brukardt
2002-03-28 0:33 ` tmoran
2002-03-28 15:21 ` Marin David Condic
2002-03-29 11:30 ` Larry Kilgallen
2002-03-29 14:33 ` Marin David Condic
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox