#!/usr/bin/perl # 東急の Web ページに掲載されている東急の時刻表*1 を、時刻表ビューア*2 # 等の時刻表データ形式 (TBL 形式) へ変換するためのスクリプト # # *1 http://www.tokyu.co.jp/train/rosen.html # *2 http://www.gcd.org/TimeTable/Welcome.ja.html # # 使い方の例: TokyuTbl.pl dt_wk_1_73.html > Azamino.tbl # (dt_wk_1_73.html は東急の時刻表ページを保存したファイル) $letter = -1; while (<>) { # タイトル if (/\
(\S+)\s+([^\<]+)\<\/pre\>/) {
$symbol = $1;
$note = $2;
if ($symbol eq '無印') {
$symbol = "-";
} elsif ($symbol =~ /^\202([\`a-y])$/) {
$symbol = sprintf("%c",ord($1)-ord('`')+ord('A'));
} else {
$kanji = $symbol;
$letter++;
$symbol = sprintf("%c",ord('a') + $letter);
$kanji =~ s/./sprintf("\\%03o",ord($&))/eg;
$table =~ s/$kanji/$symbol/g;
}
print "$symbol:$note\n";
} elsif ($letter < 0) {
s/\202([ O-X])/pack("a",ord($1)-ord('O'))/eg;
if (/\(\d+)/) {
$hour = $1;
$table .= "\n$hour:";
} elsif (/^\([^\<]+)\
([^\<]+)\(\d+)/) {
$note = "$1$2";
$min = $4;
$note =~ s/\s+//g;
$table .= " $note$min";
}
}
}
print "\n#$title$table\n";