Ruby: Split binary data -


i want split data chunks of let's 8154 byte:

data = zlib::deflate.deflate(some_very_long_string) 

what best way that?

i tried use this:

chunks = data.scan /.{1,8154}/ 

...but data lost! data had size of 11682, when looping through every chunk , summing size ended total size of 11677. 5 bytes lost! why?

regexps not way parse binary data. use bytes , each_slice operate bytes. , use pack 'c*' convert them strings output or debug:

irb> data = file.open("sample.gif", "rb", &:read) => "gif89a\r\x00\r........."  irb> data.bytes.each_slice(10){ |slice| p slice, slice.pack("c*") } [71, 73, 70, 56, 57, 97, 13, 0, 13, 0] "gif89a\r\x00\r\x00" [247, 0, 0, 0, 0, 0, 0, 0, 51, 0] "\xf7\x00\x00\x00\x00\x00\x00\x003\x00" ........... 

Comments

Popular posts from this blog

ASP.NET/SQL find the element ID and update database -

jquery - appear modal windows bottom -

c++ - Compiling static TagLib 1.6.3 libraries for Windows -