Since you're already set up with the Stream interface, try
creating a
MemoryStream instead of a BufferedFile. Write to the stream
just as you
are now, then use the .data() property (on MemoryStream's
superclass,
TArrayStream) to get an array of raw bytes. You can feed this
array into
the compress function in std.zlib to produce a new (hopefully
shorter)
array of bytes that contains the compressed data. Simply write
this
compressed data to a file with `fout.writeExact(compressed.ptr,
compressed.length)` and you're done.
Since uncompress works better if you know the exact size of the
uncompressed data, you might also consider writing the
uncompressed size
of the data to your output file before the compressed data.
Justin
Ok, I think I get it. Can you help me set up the first part,
writing to the MemoryStream?
TJB