Hobby Rooms of HIRA's Family
★ 9450's Room
 └★ PDA(Palm)のデータ&プログラム

★ TrainTime(NextTrain)用データ作成プログラム

I'm sorry. This page is Japanese only.

世の中には色々なTrainTime(NextTrain)用データ作成支援プログラムがありますが、私もPerlの勉強を兼ねて「駅前探検倶楽部 駅時刻表」データからTrainTime(NextTrain)用データ(TBL形式)に変換するプログラムを作成してみました。

本プログラムはフリーウェアです。御自由にお使い下さい。本プログラムを使用しての感想やバグレポートは歓迎します。

なお、データ入力ミス、プログラム利用などによるトラブルの責任は負えませんので、自己責任で使用してください。

やっと、最近のレイアウト変更に対応しました。対応レイアウトは「2007.8.27現在」です。
変換過程で「sjis→euc→sjis」と文字コードを変換するものと文字コードを変換しないものの2種類を用意することで、かなりの変換不具合を回避出来るようになりました。しかし、まだ完全な変換は達成出来ておりません。使用には十分注意してください!

Socketを使ってWebページを取得するように変更しましたので、インターネット環境に依存しますが、若干時間がかかります。 気長に待ってみてください。それでも駄目な時はバグレポートをお願いします。

★特徴

  • Mac OSX用の時刻表作成(駅前探検倶楽部の時刻表からTrainTime用時刻表への変換)プログラムである。なお、拡張子を「tbl」とすることでNextTrainでそのまま使用出来る。
  • 「土曜」「休日」の時刻表が同じ場合、余分なデータをまとめて「土休日」にする
  • 「DropPerler」を利用させていただいて、ドロップレットとして利用できる
  • 2つのプログラム(文字コードをeucに変換するものとしないもの)を用意することで、駅ごとの時刻表変換時の不具合の少ない変換結果を得られるようにした(これは完全な変換プログラムが出来ないための緊急対応)。ただし、これでもすべての駅の時刻表に対して完全な変換は出来ていない。
  • 全角カナ→半角カナ変換を行わないで拡張子を「tbl」として保存しているだけであるため、v.3.2から「NextTrain用」プログラム作成を中止した。
  • v.3.2から「TrainTime用」プログラムで全角カナ→半角カナ変換を行わない仕様に変更した。そのため、全角カナ→半角カナ変換の必要な方のために「全角カナ→半角カナ変換(SJIS)」を公開した。
  • 時刻表ファイル名が上下線で元のファイル名末尾に「1」もしくは「2」を付ける形式で分かりにくいので、時刻表ファイルの1行目のコメント(;○○駅[△△線]××方面)から「;」を削除したファイル名に変換するプログラムを公開した。

★元データ

  「駅前探検倶楽部」の駅時刻表・簡略表示(2007.8.27現在のレイアウトに対応)

★動作環境

  Mac OSX(動作確認はPowerBook G4 12"および OSのバージョンは10.4.10で行っています)

★変換仕様

  1. 「駅前探検倶楽部 駅時刻表」の駅毎のデータから上り/下りの2つのTrainTime用データファイルを変換対象ファイルと同じディレクトリに生成する。
    ただし、始発駅の場合は1つのみ、新宿駅の中央線のように普通/快速がある場合は4つのファイルを生成する。
  2. 変換元ファイルは、WebブラウザでHTMLのみを保存したものを使用する。現在(2007.8.27)の駅前探検倶楽部の時刻表は上り下りおよび曜日ごとにページが別れているが、どれでも好きな1ページを保存し、ドラッグ&ドロップすることですべてのページをダウンロードして時刻表を作成する。
    返還元のファイルの拡張子の有無は問わない。下記に従って、拡張子がある場合は元の拡張子を置き換え、拡張子が無い場合は追加する。
    TrainTime用データ:対象File名「???.***」もしくは「???」→出力File名「???n.txt」n=1,2,..
    v.3.2からは「NextTrain用」プログラム作成を中止しましたので、上記ファイル名の拡張子を「tbl」と変更して利用ください。
  3. 「駅名」「路線名」「方面名」の取り扱い。
    TrainTime用データ:「○○駅[△△線]××方面
    v.3.2からは「駅・線・方面」の削除は行いません。申し訳ありませんが、各自削除願います。
  4. カタカナの取り扱い。
    v.3.1まではPalm対応として「全角カナ」は「半角カナ」へ変換していたが、本機能は別プログラムで提供することとした。
  5. 時刻表の内容現在は「駅前探検倶楽部 駅時刻表」に表示されている日付を表示する。
  6. 電車種別(急行、快速etc)は大文字英字「A,B,C...X,Y,Z」から小文字英字「z,y,x,w」の最大30種別に対応できる。
    また、凡例に無い電車種別(時刻表に直接表示)に関しても対応し表示する。
  7. 行き先(上野、宇都宮etc)は小文字英字「a,b,c...x,y,z」から大文字英字「Z,Y,X,W」の最大30箇所に対応できる。
    また、凡例に無い行き先(時刻表に直接表示)や時刻表上「無印」の行き先に関しても行き先表示する。
  8. 文字コードは下記のように変換される。
     変換元ファイル:SJIS、改行コード:\r\n(DOS)
     変換後ファイル:SJIS、改行コード:\r(Mac)
    文字置換/時刻表変換での不具合を回避するため、それぞれ次のようの文字コードを取り扱う。
     駅探→TrainTime(sjis) v.3.2 : sjisのまま時刻表作成を行う
      変換不具合:特定文字(2バイト目に\がある文字)に対して不具合を発生する
      主な症状:電車種別の凡例に特定の種別が何回も登録される
     駅探→TrainTime(euc) v.3.2 : sjis→euc→時刻表変換→sjisと文字コード変換する
      変換不具合:原因不明
      主な症状:電車種別の凡例で「普通」「急行」などが2ないし3登録される場合がある        (同一駅の現象は毎回同じだが、違う駅では異なった現象が現れる)
  9. 変換作業用ファイル(最終出力ファイル数×2)を「DropPerler」内に一時的に作成する。
  10. 「文字コード変換」および「全角カナ→半角カナ変換」には、外部ライブラリとして「jcode.pl」を利用している。
  11. 【既知の不具合】v.3.2
    ・「新大阪駅/JR京都線」の神戸方面はどちらのプログラムを使用しても変換結果のどこかがおかしくなる。原因不明。
    ・他にも不具合があるかも知れません。作成された時刻表は必ず確認の上、使用には十分注意してください。
★使用方法
  1. 下記2つのプログラムをDownload、解凍して適当なディレクトリ(フォルダ)にプログラムを入れる。
      「駅探→TrainTime(sjis) v.3.2」「駅探→TrainTime(euc) v.3.2」
      必要に応じて「全角カナ→半角カナ変換(SJIS)」もDownloadしてください。
  2. 「駅前探検倶楽部」の駅時刻表・簡略表示から変換したい駅の時刻表(上り下り、曜日はどれでも良い)を表示し「HTMLのみ」を保存する。1ページのみの保存で良い(これが返還元ファイルになる)。
    「safari」で保存した場合、文字コードは「SJIS」改行コードは「\r\n(DOS)」となっている。
  3. 変換元ファイルをプログラム「駅探→TrainTime(sjis) v.3.2」にドラッグ&ドロップすると変換元ファイルの存在するディレクトリに変換後のファイルを生成する。
    必要な時刻表ページ(通常は上り下り・曜日の6ファイル)をダウンロードするので、インターネットに接続していることが条件となる。インターネット接続状況によるが、ダウンロードする時間が必要なので従来よりも変換時間が長くなっている。
    時刻表ファイルの内容を確認し、変換結果に不具合があった場合はプログラム「駅探→TrainTime(euc) v.3.2」を使ってもう一度変換する(返還元ファイルをドラッグ&ドロップする)。
    上記2回の変換でも不具合がある場合は、より変換精度の高い結果を修正して使用する(すいません)。
  4. NextTrain(および、その互換ソフト)の時刻表として使用する場合は、拡張子を「tbl」に変更する。Windowsなどで使用する場合は改行コードも変更する必要がある。
  5. 全角カナを半角カナに変更する場合は、変換後の時刻表ファイルをプログラム「全角カナ→半角カナ変換(SJIS)」にドラッグ&ドロップすると、半角カナに変換したファイルに置き換わる。
  6. ファイル名を時刻表ファイルの1行目のコメント行と同じ表現に変更したい場合は、返還後の時刻表ファイルをプログラム「時刻表ファイル名変換」にドラッグ&ドロップすると、下記の事例のようにファイル名が付け替えられる。
     返還前ファイル名         : 北千住駅|東部伊勢崎線2.txt
     時刻表ファイルの1行目のコメント : ;北千住駅[東武伊勢崎線]浅草方面
     変換後ファイル名         : 北千住駅[東武伊勢崎線]浅草方面.txt
    なお、このプログラムはPerlでの日本語を含むファイル名の取り扱いの難しさからPerlではなく、AppleScript Studioで作成しています。
★Download
  1. TrainTime用データ作成プログラム sjis→sjis (駅探→TrainTime(sjis) v.3.2
  2. TrainTime用データ作成プログラム sjis→euc→sjis(駅探→TrainTime(euc) v.3.2
  3. 全角カナ→半角カナ変換プログラム(全角カナ→半角カナ変換(SJIS)
  4. 時刻表ファイル名変換プログラム(時刻表ファイル名変換
★改定履歴
    ★2007/9/30 時刻表ファイル名変換プログラムを公開した。
    ★2007/9/2 文字コードをeuc変換して文字置換するプログラムを正しいものに入れ替えた。すいませんでした。
    ★2007/9/1 文字置換の不具合対応のため、文字コードをeucに変換するプログラムと変換しないプログラムの2つに変更した。合わせて全角カナ→半角カナ変換を別プログラムとして分割した。
    ★2007/8/29 いくつかの駅の変換の不具合に対応した(ただし、一部駅の不具合には未対応)。またTrainTime用データは「駅・線・方面」の省略および半角カナへの変換を実装した。
    ★2007/8/27 4月のダイヤ改正後の最新のレイアウト変更対応(簡略表示のみ)
    ★2007/1/22 「JR成田空港駅 成田エキスプレス」など「駅前探検倶楽部」の駅時刻表・簡略表示での行き先の省略方法による変換の不具合に対応した。例えば「新宿→宿」「新宿/横浜→宿横」などに対応。
    ★2006/12/03 Mac OSXのPerlに移行するとともに「DropPerler」を使ったドロップレットに変更した。また、Windowsマシンの利用を会社のみにしたため、Windows版の開発を終了した(Mac用のソースプログラムは開示)。
    ★2006/06/03 3月のダイヤ改正後の最新のレイアウト変更対応(簡略表示のみ)
    ★2004/11/03 データ構造の変更(10月下旬?)で正しく変換できないバグを修正
    ★2004/10/17 「JR山手線」など環状線で行き先の無いデータから正しく変換できないバグを修正した。また、Palm用として不要データを削除したコンパクトなTrainTimeデータに直接変換するプログラム(Mac版)をおまけとして公開した。
    ★2004/10/16 「JR湘南新宿ライン」から線名抽出できないバグを修正
    ★2004/10/08 平日、土曜の最終時刻データが欠落するバグを修正
    ★2004/10/03 10月のダイヤ改正を目前にして最新のレイアウト変更対応(簡略表示のみ)
    ★2003/03/08 Windows用プログラム修正
    ★2003/02/16 駅前探検倶楽部表示レイアウト変更対応(簡略表示のみ)
    ★2003/02/16 MacJperlについてはドロップレットに変更(バージョン 5.2.0r4 J2)
    ★2002/06/01 駅前探検倶楽部表示レイアウト変更対応(簡略表示のみ)
    ★2002/02/01 初版プログラム作成

Return to Home 9450's Room PDA(Palm)のデータ&プログラム

お便りはこちらまで      Last Update:2007.9.30