Hi,

I'm writing a bit of Ruby to output SWF files.

SWF's opcodes and arguments are variable-length streams of bits. They're
packed in direct succession - i.e. not usually padded to byte
boundaries.

So, for example, you might have

   00111         5-bit record
   0110101       7-bit record
   0000110       7-bit record
   0001100       7-bit record
   1111101       7-bit record

which would be packed as

   0b00111011,0b01010000,0b11000011,0b00111110,0b10000000

(the final byte here is null-padded)

I'm trying to write these opcode by opcode, and get a bytestream out the
end of it. Currently I'm just appending each opcode to a long string
(m+='00111'), and when it comes to writing it out, splitting this every
eight characters and converting back to a single character. But this is
awfully slow.

Can anyone suggest a faster way?

(Apologies if this shows up twice, I've been arguing with Google Groups
today. ;) )

cheers
Richard
richard / systemeD.net

-- 
Posted via http://www.ruby-forum.com/.