基礎プログラミング I 第07 回 正規表現と Ruby 言語でのプログラミング 候補駅を選べるようにするには

候補の駅を出力したあと、ユーザに選んでもらうようにしたい。 キーボード操作を簡単にするため、候補の数字を選ぶように作る。 regexp_readdata.rb から regexp_select.rb を作る。

#!/usr/koeki/bin/ruby

name = Array.new

STDERR.print "検索パターン: "
pattern = STDIN.gets.chomp
request = Regexp.new(pattern, true, "e")

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 番目の候補が格納されている。 出力された候補の中からユーザが選ぶように作るにはこちら。

本日の講義 / 講義ノート / 教員トップページ