comp.lang.ada
 help / color / mirror / Atom feed
From: "Peter C. Chapin" <pchapin@sover.net>
Subject: Advice on low level file handling.
Date: 02 Apr 2006 02:47:17 GMT
Date: 2006-04-02T02:47:17+00:00	[thread overview]
Message-ID: <Xns9798DDB851DB4pchapinsovernet@198.186.192.137> (raw)


I'm working on a program that needs to read an input file on a byte by byte 
basis and examine bit fields and do bitwise shifting in some of these 
bytes. Other parts of the file are to be treated as uninterpreted data 
(this is an OpenPGP message file). Right now I'm using Interfaces.Unsigned_
8 as the type to hold a single byte from the file and I'm instantiating 
Ada.Sequential_IO with this type to get the necessary file reading 
subprograms. So far this seems okay, but I'm wondering if this is the most 
appropriate way to do this. Am I abusing package Interfaces? Should I be 
defining my own modular type or should I be using representation clauses 
with custom record types?

Also I need to count the number of bytes I process and the quantity may 
exceed 2**32. I can define a 64 bit modular type and that seems to work 
fine on gnat. Is that portable? I'm not extremely worried about 
portability, but I'd rather not sacrifice it for no reason.

Thanks for any advice you can offer.

Peter



             reply	other threads:[~2006-04-02  2:47 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-04-02  2:47 Peter C. Chapin [this message]
2006-04-02 10:55 ` Advice on low level file handling Georg Bauhaus
2006-04-04  1:31 ` Randy Brukardt
2006-04-05 10:41   ` Peter C. Chapin
2006-04-06  7:43     ` Michael Paus
2006-04-06 12:21       ` Peter C. Chapin
2006-04-06 12:46         ` Dmitry A. Kazakov
2006-04-06 14:13         ` Bob Spooner
2006-04-07 10:48         ` Stephen Leake
replies disabled

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