バイナリとダンプの相互変換
バイナリからダンプ
print 'ファイル名:' filename = gets.chomp File.open(filename, 'r') do |file| i = 0 file.each_byte do |c| if i != 0 print ( i % 16 == 0 ) ? "\n" : ' ' end print '%02x' % c i += 1 end end
ダンプからバイナリ
puts '16進ダンプ:' data = gets(nil) print 'ファイル名:' filename = gets.chomp File.open(filename, 'w') do |file| data.scan(/[0-9a-f]{2}/i).map{|v|v.to_i(16)}.each do |c| file.putc c end end