[#48044] Re: ruby 1.9.2とRails3 へのアップグレード — "Endo Akira" <endo4917@...>

アスカルさん

12 messages 2011/05/04
[#48045] Re: ruby 1.9.2とRails3 へのアップグレード — "Y. NOBUOKA" <nobuoka@...> 2011/05/04

アスカルさん

[#48062] 小数点つき時刻情報とTime#parse — Mitsuo KASAHARA <m.kasahara13@...>

笠原ともうします。

18 messages 2011/05/09
[#48068] Re: 小数点つき時刻情報とTime#parse — Tanaka Akira <akr@...> 2011/05/09

2011年5月9日10:29 Mitsuo KASAHARA <m.kasahara13@gmail.com>:

[#48070] Re: 小数点つき時刻情報とTime#parse — EGUCHI Osamu <eguchi@...> 2011/05/09

えぐち@エスアンドイーです

[#48072] Re: 小数点つき時刻情報とTime#parse — Tanaka Akira <akr@...> 2011/05/09

2011年5月9日13:43 EGUCHI Osamu <eguchi@sandeinc.com>:

[#48092] 後継者募集 — MoonWolf <moonwolf@...>

MoonWolfです。

22 messages 2011/05/22
[#48095] Re: 後継者募集 — Youhei SASAKI <uwabami@...> 2011/05/23

MoonWolf 様: 佐々木と申します.

[#48096] Re: 後継者募集 — MoonWolf <moonwolf@...> 2011/05/23

MoonWolfです。

[ruby-list:48115] Re: データ整形

From: "Y. NOBUOKA" <nobuoka@...>
Date: 2011-05-25 15:01:23 UTC
List: ruby-list #48115
信岡です。

既に渡辺さんがすっきりしたコードを書いておられるのであんまり意味がないですが
私も書いてみたのでお送りします。

細かい部分ですが、渡辺さんのコードだと
> printf "0x%4x %s\n", address, ARGF.read(readsize)
のところで、address の 16 進数表示が 4 桁にならない場合に
"0x 7FF" のように "0x" の後ろに空白が表示されてしまうので、
"0x%4x" の部分は "0x%04x" にしたら良いと思います。

以下私のコードです。
無駄に長いですが、整形の方法に関する部分など参考になれば。

 #! ruby
 # coding: UTF-8

 # 読み込むファイル名
 input_file_name = 'input.txt'
 # 繰り返し回数
 #   最初の32文字で改行しデータ出力→2回繰り返し
 #   次の4文字で改行しデータ出力
 #   次の14文字で改行しデータ出力→43回繰り返し
 #   次の32文字で改行しデータ出力→43回繰り返し
 format_info = [ [32,2], [4,1], [14,43], [32,43] ]
 # 最初のメモリ位置
 mem_addres = 0x3000


 # 入力データ
 input_data  = nil
 # 整形後のデータ
 output_data = ''
 # データの読み込み
 File.open( input_file_name, 'r' ) do |f|
   input_data = f.read()
 end

 # 位置情報
 n = 0
 # 整形
 format_info.each do |e|
   e[1].times do
     # 整形した 1 行を出力データに追加
     output_data << "0x%04X %s\n" % [ mem_addres, input_data[n,e[0]] ]
     # 位置情報の更新
     n += e[0]
     mem_addres += e[0] / 2
     # 2 で割り切れないならエラーにする?
     e[0] % 2 == 0 or raise 'Invalid format_info'
   end
 end
 # 残ったデータも出力?
 if n < input_data.length
   output_data << "0x%04X %s\n" % [ mem_addres, input_data[n..-1] ]
 end

 # 標準出力へ
 $stdout << output_data


-- 
信岡 ゆう (NOBUOKA Yu)

In This Thread

Prev Next