[Haskell-cafe] Writing binary files?
Sven Panne
Sven.Panne at aedion.de
Sat Sep 11 12:25:01 EDT 2004
Hal Daume III wrote:
> There's a Binary module that comes with GHC that you can get somewhere (I
> believe Simon M wrote it). I have hacked it up a bit and added support
> for bit-based writing, to bring it more in line with the NHC module.
> Mine, with various information, etc., is available at:
>
> http://www.isi.edu/~hdaume/haskell/NewBinary/
Hmmm, I'm not sure if that is what Ron asked for. What I guess is needed is
support for things like:
"read the next 4 bytes as a low-endian unsigned integer"
"read the next 8 bytes as a big-endian IEEE 754 double"
"write the Int16 as a low-endian signed integer"
"write the (StorableArray Int Int32) as big-endian signed integers"
...
plus perhaps some String I/O with a few encodings. Alas, we do *not* have
something in our standard libs, although there were a few discussions about
it. I know that one can debate ages about byte orders, external representation
of arrays and floats, etc. Nevertheless, I guess covering only low-/big-endian
systems, IEEE 754 floats, and arrays as a simple 0-based sequence of its
elements (with an explicit length stated somehow) would make at least 90% of all
users happy and would be sufficient for most "real world" file formats. Currently
one is bound to hGetBuf/hPutBuf, which is not really a comfortable way of doing
binary I/O.
Cheers,
S.
More information about the Haskell-Cafe
mailing list