Information

 

Home > Archives > 2009年11月15日

2009年11月15日

京成バス時刻表変換スクリプト

バスの時刻表を少しでも楽に変換できないかと四苦八苦してみました。
どれくらい需要があるかわかりませんが、一応公開します。

ファイルは下記の2つに分かれています。

拡張子が .rb.txt になっていますので、使用するときは .rb に直してください。
また、下記のような制限があります。

  • 動作環境(自分の動作環境)
    Windows XP SP3
    ruby 1.8.6 (2007-09-24 patchlevel 111) [i386-mswin32]
    (他のOS、他のrubyのバージョンではどうだかわかりません。)
  • 出力するデータ形式
    NextTrain用(及びJNTrainのような互換アプリ用)
    スクリプトと同じディレクトリに処理する路線の内容を使ったファイル名でデータファイルを書き出します。
  • 対応するバス会社
    京成バス
    (少なくとも自分が使う路線、サンプルで書いた路線ではちゃんと動いたと思います。)
  • データ設定
    TrainConvのように親切な作りではありません。
    データ設定部分のファイルに自分で時刻表のサイトアドレス、凡例を設定する必要があります。
    サンプルファイルにコメントがありますので、それを見てください。
    (無力ゆえ、京成バスの凡例を自動でとってこれません・・・)
    処理部分の方は、処理方法に不満がなければいじる必要はありません。

実行時は、コマンドプロンプト上で

ruby [-d] keiseibus_conv.rb
ruby [-d] keiseibus_conv.rb chi010506

のようにしてください。
(rubyのインストール方法は?とか、パスを通しておくとか、実行時のディレクトリがどうとか、その辺は自分でクリアしてください。うまく説明する自信がありません。)

上は引数を指定しない場合です。
この場合、同じディレクトリに keiseibus_settings.rb があればそれを読み込み実行します。
なければ何もしません。

下は引数を指定する場合です。
(サンプルのファイルはこれでそのまま実行できます。)
複数の路線データを処理したい場合、 keiseibus_settings-○○.rb というファイルを必要なだけ用意してください。
実行時に○○を引数として渡すと、そのファイルを読み込んで処理します。
引数に渡すのはデータ部分のフルファイル名ではなく、○○のみです。
ただし、引数で認識するのは一つだけなので、必要なだけコマンドを打ち込んでください。

こんな感じですが、全ての時刻表について正しく動くかは自信がありません。
エラー処理って何?ってレベルです。
お約束ですが、このスクリプトを使用することで発生する損害を私が負担することはできませんので、at your own riskでお願いします。

改変するのは自由です。
その際、改変内容を教えていただけると勉強になりますので、できれば教えてください。
(強制ではありません。)