トップ 一覧 Farm 検索 ヘルプ RSS ログイン

Diary/2011-12-13の変更点

  • 追加された行はこのように表示されます。
  • 削除された行はこのように表示されます。
!旅程
出張の申請をするときに旅程を書かなければいけないのだけど
地味に面倒....
というわけで駅前探検倶楽部のテキストデータから旅程出せるような
スクリプトを書いてみた.

{{ref format.rb}}

 path = []
 goal = ""
 
 data = $stdin.read
 data.split("\n").each{ |line|
   if /^●(.+)/ =~ line then
     path << $1
   elsif /^○(.+)/ =~ line then
     path << $1
   elsif /^↓(.+)/ =~ line then
     path << $1
   elsif /^■(.+)/ =~ line then
     goal = $1
   elsif /\d\d:\d\d/ =~ line then
   elsif / +([^\(].+)\(.+\)\[.+\]/ =~ line then
     path << $1
   elsif /徒歩/ =~ line then
     path << "徒歩"
   elsif /バス/ =~ line then
     path << "バス"
   elsif / +(\D+)(\d+)便/ =~ line then
     path << $1
   end
 }
 
 flag = false
 im = ""
 ret_path = path.reverse
 path.each{|elem|
   print im
   print "(" if flag
   print elem
   print ")" if flag
   im = " → "
   flag = !flag
 }
 print " → "
 print goal
 flag = true
 ret_path.each{|elem|
   print im
   print "(" if flag
   print elem
   print ")" if flag
   im = " → "
   flag = !flag
 }
 puts


たとえば,調布→湯河原で検索した結果
 ●調布
 |  15:18発
 |    京王線(準特急)[新宿行]17分
 | △15:35着
 ○新宿
 |  15:42発
 |    JR山手線(内回り)[渋谷方面行]19分
 |  16:01着
 ○品川
 |  16:10発
 |    ひかり479号(自由席)[岡山行]32分
 |  16:42着
 ○熱海
 |  16:51発
 |    JR東海道本線(快速アクティー)[東京行]5分
 |  16:56着
 ■湯河原


 ruby format.rb
のあと標準入力から入力すると,
 調布 → (京王線) → 新宿 → (JR山手線) → 品川 → (ひかり479号) → 熱海
 → (JR東海道本線) → 湯河原 → (JR東海道本線) → 熱海 → (ひかり479号) → 品川
 → (JR山手線) → 新宿 → (京王線) → 調布
とか出力される.