候補の駅を出力したあと、ユーザに選んでもらうようにしたい。 キーボード操作を簡単にするため、候補の数字を選ぶように作る。 regexp_readdata.rb から regexp_select.rb を作る。
#!/usr/koeki/bin/ruby
#coding: euc-jp
name = Array.new候補の駅名を選ぶ
STDERR.print("検索パターン: ")
pattern = STDIN.gets.chomp
request = Regexp.new(pattern, true)
open("station.dat","r") do |candidate|
i = 0候補を数える
while station = candidate.gets
if request =˜ station
# print station
if /(\S+)\s+(\S+)\s+(\S+)\s+(\S+)/ =˜ station
name[i] = $1
printf("%d \t %s駅\n", i+1, name[i])
i += 1
end
end
end
end
実行すると
%./regexp_select.rb 検索パターン : on[sz]en 1かみのやま温泉駅 2あつみ温泉駅
となる。name[i] に i+1 番目の候補が格納されている。 出力された候補の中から ユーザが選ぶ ように作るにはこちら。