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

Reply via email to