KEEP K.I.S.S.

tk's blog

Ruby 转换 Hex文本文件为二进制文件

用串口调试助手接受哦串口数据,貌似没找到怎么直接存储为二进制文件,所以用文本框显示十六进制字节流表示,然后存储(如果直接显示二进制会乱码,而且转换会丢失数据)。然后就写了个Ruby脚本来还原这个十六进制文本流。

 

filename = ARGV[0]
bytes = []
File.open(filename, "r") do |file|
  while str = file.gets
    bytes += str.split.map {|byte| byte.hex}
  end
end

puts bytes.count

newfilename = filename + ".bin"
File.open(newfilename, "wb") do |file|
  file.write bytes.pack("C*")
end