Forum: Ruby reading binary data stops unexpectedly

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
Gonzalo R. (Guest)
on 2006-03-05 16:23
i'm trying to parse a binary file that simply contains Wav files one
after the other packed with an arbitrary header that points where one
file begins and the lenght of it.
The case is that i want to ignore decomposing the header and just dump
each file as i encounter the Wav headers, but Ruby stops reading data
unexpectedly.

in a nutshell, my code goes like this:
File.open('sound.dat', 'r').each_byte do |byte|
  #...stuff to process the data...
end

The block exits at 15864 bytes without throwing any errors. I even tried
reading the whole file to memory and it just loads those same 15864
bytes (and it's a 190MiB file!!!)

Is this a known Ruby bug? am i doing something wrong?

thanks in advance,
/gonchuki
Marcin MielżyÅ?ski (Guest)
on 2006-03-05 16:34
(Received via mailing list)
Gonzalo R. wrote:

> in a nutshell, my code goes like this:
> File.open('sound.dat', 'r').each_byte do |byte|
>   #...stuff to process the data...
> end

open('sound.dat', 'rb')


lopex
Gonzalo R. (Guest)
on 2006-03-05 17:23
Marcin MielżyÅ?ski wrote:
> Gonzalo R. wrote:
>
>> in a nutshell, my code goes like this:
>> File.open('sound.dat', 'r').each_byte do |byte|
>>   #...stuff to process the data...
>> end
>
> open('sound.dat', 'rb')
>
>
> lopex

nice!

i just couldn't find it in the pickaxe 2 and forgot that ruby handles
file open modes just like in C

thanks for your help.
This topic is locked and can not be replied to.