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/.