テキストファイルの内容をソートするプログラム その3 「コマンドライン引数と式展開」
■変更点
- 検索用正規表現文字列を外部から受け取る
- 可読性と保守性を高めるため、ファイルを扱う部分の記述を変更
- open(組み込み関数)⇒File.open(クラスメソッド)
- File.openメソッドの呼び出しにブロック引数を使用(Fileオブジェクトの有効範囲がブロック内に限られるため、リソース管理が楽)
- open(組み込み関数)⇒File.open(クラスメソッド)
■解説
file_path = ARGV[0]
search_str = ARGV[1]temp_lines = []
File.open(file_path) { |f|
f.each do |line|
temp_lines << line
end
}temp_lines.sort!
File.open("result_" + file_path, "w") { |f|
temp_lines.each do |line|
if line.match(/#{search_str}/)
f.puts line
end
end
}