- 追加された行はこのように表示されます。
- 削除された行は
このように表示されます。
!旅程
出張の申請をするときに旅程を書かなければいけないのだけど
地味に面倒....
というわけで駅前探検倶楽部のテキストデータから旅程出せるような
スクリプトを書いてみた.
{{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山手線) → 新宿 → (京王線) → 調布
とか出力される.