rohit2000s
12/21/2007 2:34:00 PM
On Dec 21, 5:37 pm, Robert Klemme <shortcut...@googlemail.com> wrote:
> 2007/12/21, rohit20...@yahoo.com <rohit20...@yahoo.com>:
>
>
>
> > Hi All,
>
> > I am trying to read in a binary file of size 'n' using:
>
> > mem_buf = IO.read(file_name, n, 0)
>
> > Where file_name is an argument to the script.
>
> > But after the read I observed that the size of the mem_buf is less
> > than 'n' (It should be equal to 'n').
>
> > (mem_buf.size != n).
>
> > This script fails on the above read check.
>
> > Any ideas what I might be doing wrong here. Any help will be
> > appreciated.
>
> Either, the file is smaller than n or you have an issue with
> conversion (typically on Windows). For binary files I'd do this which
> is more portable:
>
> mem_buf = File.open(file_name,"rb") {|io| io.read}
>
> Also, it helps documenting things. Bw, you do not need the offset and
> size arguments.
>
> Kind regards
>
> robert
>
> --
> use.inject do |as, often| as.you_can - without end
Thanks a lot ! That was the exact problem I had - getting that part of
code to work on windows.
Could you please take time to detail a bit on:
"{|io| io.read}" part of the code.
Also is there a way to add the offset and size arguments to the read
method that you suggested ?
Thanks in advance,
Rohit