From: Michael Moeller <mic2@t-online.de>
Subject: Re: xor
Date: Tue, 27 Mar 2012 22:16:38 +0100
Date: 2012-03-27T22:16:38+01:00 [thread overview]
Message-ID: <Pine.GSO.4.64.1203272204200.2980@kodiak1> (raw)
In-Reply-To: <ov31bbqp2adm.19zaflef0voiw$.dlg@40tude.net>
On Tue, 27 Mar 2012, Dmitry A. Kazakov wrote:
> On Tue, 27 Mar 2012 21:09:02 +0100, Michael Moeller wrote:
>
>> I have to read in what in C is called an unsigned byte,
>
> C does not have it. [unsigned] char maybe?
>
> In Ada there is a type Unsigned_8 declared in the package Interfaces.
>
>> which in fact is
>> a stream of bytes without any interpretation as a symbol.
>
> That depends on the operating system and the file type.
>
>> In addition it would be nice to call something like 'fstat' to get the
>> size of file in advance instead of checking every byte for EOF.
>
> In Ada you don't need that. You just read file until End_Error exception is
> propagated. This is more efficient (no look ahead) and more portable too.
>
> Here is an example of reading out a file in Ada using stream interface:
>
> http://rosettacode.org/wiki/Bitmap/Read_a_PPM_file#Ada
>
> It uses Character type, which is close to the way one programs in C.
> Character'Pos (x), where x is of Character is a number 0..255.
>
> You can also use Interfaces.Unsigned_8 instead of Character, no difference.
>
> --
> Regards,
> Dmitry A. Kazakov
> http://www.dmitry-kazakov.de
>
First, this Unsigned_Byte_T'Read thing worked. Thanks again.
Of course it's unsigned char in plain C. My fault.
I'm dealing with cipher stuff at the moment. I know for sure how
big the file is. Any other size will raise an error at runtime.
In addition there is no EOF, which brings me to the next question:
How can I prevent Ada from attaching '0x0a' to the end of the file?
Regards,
Michael
next prev parent reply other threads:[~2012-03-27 20:18 UTC|newest]
Thread overview: 35+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-03-25 14:28 xor Michael Moeller
2012-03-25 14:01 ` xor Niklas Holsti
2012-03-25 15:16 ` xor Michael Moeller
2012-03-25 19:05 ` xor Dmitry A. Kazakov
2012-03-27 20:31 ` xor Michael Moeller
2012-03-25 19:26 ` xor Niklas Holsti
2012-03-27 20:09 ` xor Michael Moeller
2012-03-27 19:44 ` xor Dmitry A. Kazakov
2012-03-27 21:16 ` Michael Moeller [this message]
2012-03-27 21:14 ` xor Simon Wright
2012-03-27 22:56 ` xor Michael Moeller
2012-03-27 22:03 ` xor Georg Bauhaus
2012-03-27 23:50 ` xor Michael Moeller
[not found] ` <bbedne9wdofZyu_SnZ2dnUVZ_hydnZ2d@earthlink.com>
2012-03-28 12:18 ` xor Michael Moeller
2012-03-28 12:48 ` xor Georg Bauhaus
2012-03-28 15:23 ` xor Michael Moeller
2012-03-28 15:58 ` xor Niklas Holsti
2012-03-28 17:28 ` xor Michael Moeller
2012-03-28 23:25 ` xor Randy Brukardt
2012-03-29 5:17 ` xor Niklas Holsti
2012-03-29 23:41 ` xor Randy Brukardt
2012-03-30 21:53 ` xor Niklas Holsti
[not found] ` <jtmdnfjWWsUYoO7SnZ2dnUVZ_gSdnZ2d@earthlink.com>
2012-03-28 17:44 ` xor Michael Moeller
2012-03-28 14:07 ` xor Dmitry A. Kazakov
2012-03-28 16:16 ` xor Michael Moeller
2012-03-28 16:08 ` xor Dmitry A. Kazakov
2012-03-28 17:36 ` xor Michael Moeller
[not found] ` <tdadna1MV6uj5O7SnZ2dnUVZ_jidnZ2d@earthlink.com>
2012-03-28 21:48 ` xor Georg Bauhaus
2012-03-29 7:43 ` xor Dmitry A. Kazakov
2012-03-29 7:49 ` xor Simon Wright
2012-03-27 21:28 ` xor Georg Bauhaus
2012-03-27 19:50 ` xor Randy Brukardt
2012-03-27 21:44 ` xor Michael Moeller
2012-03-27 22:01 ` xor Georg Bauhaus
2012-03-27 20:13 ` xor Jeffrey Carter
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox