電子書籍の厳選無料作品が豊富!

rubyでバイナリファイルを扱う練習をしていますが、バイナリを読み込み数字として使う際、それまでにストリングに変え、intにするなど複数の処理を行わなければ扱えないようなのですが、もっとシンプルな方法はありませんでしょうか。下記がそのサンプルです。
どうぞよろしくお願いいたします。


b = File.new("test.bin", "w")
s= [31].pack('c')
b.print s # 1F
b.close

infp = File.open("test.bin","r")
s=infp.read(1)
infp.close
s=s.unpack('c')
s=s.to_s
s=s.to_i
s=s+2
puts s # 33

A 回答 (1件)

s.unpack('c') の結果を p メソッドで出力してみてください。


戻り値が数値の配列になっているのが分かると思います。

ですので

puts s.unpack('C')[0]+2

で 33 がでます。
    • good
    • 0
この回答へのお礼

おっしゃる通りに実行するとできました。
pメソッドの使い方等もあまりよくわかっていませんでした。
もっと勉強したいと思います。
ありがとうございました。

お礼日時:2008/08/13 09:32

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!