# 【ファイル名】fuku.rb
# 【目的】A, B, Cなどの文字を検索して、設定ファイルに基づいて数字に置換する
# 【用意】検索する文字および数字を各行とする設定ファイルを用意する
# 【実行】ruby fuku.rb input.txt
file_name = "fuku.ini" # 設定ファイルの名前
h = {"A" => "01",
"B" => "02",
"C" => "03",
"D" => "04",
"E" => "05",
"F" => "06",
"G" => "07",
"H" => "08",
"I" => "09"} # 検索する文字を引数とするハッシュを生成した
i = ["A", "B", "C", "D", "E", "F", "G", "H", "I"] # 検索する文字からなる配列を生成した
File.foreach(file_name) do |line| # lineに設定ファイルの行を代入
a = line.split
h[ a[0] ] = a[1] # 設定ファイルに基づいて数字を更新した
end
while line = ARGF.gets # lineに入力ファイル(例:input.txt)の行を代入
string = line.chop # 改行の制御文字を削除した
i.each do |x| # 検索する文字をxに代入
string = string.sub(x, h[x]) # 文字を検索して、数字に置換した
end
puts string # 行を出力した
end