[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

comp.lang.ruby

Re: How to manipulate binary file

Tim Pease

2/9/2007 6:24:00 PM

On 2/7/07, Minxing Liu <lmxbitihero@gmail.com> wrote:
> I love Ruby very much and now Ruby is my first language.But now I meet a
> problem on Ruby.I want to do as follows:
> 1:Open a file in binary mode
> 2:Shift the bit in a algorithm
> 3:Save the file
>
> I don't know how to shift the bit stream in Ruby.Can any one give me an
> advice???
>

As mentioned before, you can use the >> and << operators to perform
bit shift operations, but these only work with integers. You will need
to use the pack and unpack methods to convert the strings you read
from the file into integers.

str = IO.read('myfile')
ary = str.unpack('N*')
ary.map! {|int| int >> 2}
str = ary.pack('N*')
File.open('anotherfile','w') {|fd| fd.write str}

This example assumes you have a file full of 32-bit integers in
big-endian format. It will shift each integer 2 bits to the right.

Blessings,
TwP