Web時刻表データからWinDIAのデータを作り出す

2012/07/18

自分用の備忘録&作業メモ。(2016/09/08加筆)

まずはweb上の時刻表のデータをxlsに取り込む。時刻表部分をコピペで良い。
複数ページにまたがる場合はy方向のデータを揃える必要がある。

各駅、各時刻1セルに落としたいので、OpenOfficeやLibreOfficeは今のところダメ。
MicrosoftOffice2010まで動作確認。(2007だと時刻の変換が一部おかしい)
OpenOffice、LibreOfficeも同様に時刻からテキストへの変換ができないが、時刻データが0:00を回るとどうにもできない。
たとえば、「0:05」のデータが「5」になってしまう。
MicrosoftOfficeは、時刻データをテキスト変換して「0:05」を「005」とすることができる。
※この部分、23:59を過ぎる時刻がなければ特に問題なし

下りデータはあまり気にせずそのまま。
上りと駅の発着時刻を記載している駅が異なる場合があるので、消すか盛って合わせる。

上りのデータも下りと同じ駅順に並べる必要があるので、取り込んだ後に1列ダミー列を入れ、ソートして上下を入れ替える。
このとき、発着時刻まで入れ替わるとまずいので、ソート後に行のコピペで
到着時刻
発車時刻
この順に並べ替える。着発で2行になっている駅はセルの色を変えておくとあとで見つけやすい。

先頭行付近は次のようにデータを編集する。
1:列車種別(空欄:各駅停車, 1:快速, 8:特急)
2:列車番号
3:列車名
4:空き行(1号とかのデータと思われるが)
5:最初の駅時刻

行列データを入れ替えて別のエリアにコピペ。

ここで行列入れ替えたデータを秀丸などにコピペ、「:」を置換で削除、再度コピペしてxlsxに戻す。
貼り付けるセルはコピー元にセルに上書きでも良いが、書式設定で「テキスト」にしておくこと。
※忘れると、005(0:05)が5になってしまう

発着時刻を持つ駅のデータの右に列を1行挿入し、1セルに連結する。

=A1&”/”&B2

この値を入れるセルの書式は標準にしておく。

列を追加、上記式を入れるのが全駅作り終えたら、追加した列をコピーして、値貼り付けする。
セル参照元がなくなったので、2列に分かれている着時刻、発時刻の列を削除する。
これで、各列車1行、各駅1列のデータとなった。

ここから先は秀丸などのテキストエディタで置換の作業。


■不要データの削除と置換
削除:「==」「–」「||」「直前」「接続」
置換
前:「レ」
後:「-」
前:「TAB」
後:「,」

■発着時刻のある駅のデータなし
/は削除
前:「,/,」
後:「,,」

■発着時刻のある駅始発(下り)
発着時刻のある駅から始発となる列車のデータは
,,,,,,,/600,-,-,605/606,,,,
となるので、この「/」を削除しないと、到着時刻に「000」が出てしまう。
置換
前:「,,/」
後:「,,」

■発着時刻のある駅のデータ
「到着時刻/発車時刻」

この並びは上りも下りも同じ
画面一番下の駅は
2300/
としておくとよい。

■発着時刻のある駅を通過
置換
前:「-/-」
後:「-」

■発着時刻のある駅始発(上り)
/,を削除する必要がある。
置換する
前:「/,」
後:「,」
※あまりにも多くのデータにヒットするので、適用しなくても良い

■上り列車の到着時刻が発車時刻になっているとき
置換する
前:「,/600,」
後:「,600/,」
秀丸のマクロを再生してもOK。
※あまりにも多くのデータにヒットするので、適用しなくても良い

setcompatiblemode 0x0F;
searchdown “,/” , regular, nocasesense, hilight;
if( ! result ) beep;
right;
beginsel;
right;
cut;
searchdown “,” , regular, nocasesense, hilight;
if( ! result ) beep;
left;
right 2;
left;
paste;
golinetop;
down;

Tags: , ,

Comments are closed.