競馬であそぶ 5

人に喜んでもらえるような善意は必要だよね


  1. Config::Simple(2005.05.31)
  2. Perl/Tk ⇒ kbsTk (2005.06.03〜追加)
  3. スクリプトを改造(1)(2005.06.14)
  4. スクリプトを改造(2)(2005.06.15)
  5. スクリプトを改造(3)(2005.06.17)
  6. スクリプトを改造(4)(2005.06.21)
  7. スクリプトを改造(5)(2005.06.26)
  8. Win32::OLE (失敗例) (2005.06.30)
  9. Win32::OLE ::Variant (2005.07.07)
  10. 使ってナンボ (2005.07.07〜追加修正)
---------------------------------

トップページへ




1.  Config::Simple  

まず最初は、PPM を使って Perl のモジュールを入手する方法です。
Perl をインストールしていれば、PPM も使えるはず。
とりあえず、練習を兼ねて Config::Simple モジュールでテストします。

コマンドプロンプトで、ppm (or ppm3) と打ち込みます。⇒PPM の起動

C:\>ppm
PPM - Programmer's Package Manager version 3.1.
Copyright (c) 2001 ActiveState Corp. All Rights Reserved.
ActiveState is a devision of Sophos.

Entering interactive shell. Using Term::ReadLine::Stub as readline library.

Type 'help' to get started.

ppm>

次に、search config-simple と打ち込んで ⇒ Config::Simple を探します。
大体、下のような感じになります。

ppm> search config-simple
Searching in Active Repositories
  1. Config-Simple [4.58] simple configuration file class
  2. Config-Simple [4.43] Simple Configuration File Class
  3. Config-Simple [4.55] Simple Configuration File Class
  4. Config-Simple [4.56] Simple Configuration File Class
  5. Config-Simple [4.57] Simple Configuration File Class
  6. Config-Simple [4.58] Simple Configuration File Class

↑の場合、ここで手に入れられる最新のバージョンは [4.58] のようですね。
search config とやると、config という文字を含むモジュールが全部表示 されます。

インストールは、install Config-SimpleでOKです。⇒ install モジュール名

ppm> install Config-Simple

もしインストール済みであれば、以下のように表示されます。

Note: Package 'Config-Simple' is already installed.

PPM では、こんな風にモジュールを探したりインストールしたりするのですが他の方法も
興味があれば調べてみてください。

この Config::Simple というモジュールは、外部の iniファイルなどからの設定の読み込み
や変更などを簡単に操作するためのものです。

次回以降のサンプルから、早速使っていこうとおもいます。




2.  Perl/Tk ⇒ kbsTk  

( kbsTk.pl はこの項の中頃に置いてあります。)

Tk はツールキットのことだそうです。
なんのツールかというと、メニューやボタンで操作するための画面を作るため のものです。

Perlの場合、コマンドラインから文字や数字を打ち込むのが当たり前なのですが、どうや ら、VB なんかと同じことが出来るというので早速試してみることにします。

もとは Tcl のツールなのですが、余程古いVer でなければ Perl の標準ライブラリとして 一緒についてきてるので、 Windows で Perlを入れている人は「的中」です。
あらためて、インストールする必要はないでしょう。

参考になるサイトとして、激!お勧めは、
M.Hiroi's Home Page の Perl/Tk memo 〜ほか、全記事です。

現在、少しづつ試していますが問題ありそうなのが、やはり日本語の表示です。
等幅フォントでの表示がうまくいかないので、 細工が必要かもしれないと思っています。
Tcl/Tk では問題ないらしいのですが、Tcl への移行の予定は当分ないので自力(or他力) で解決したいと思います。
なんと"MS ゴシック"を"MS ゴシック"(全角スペース→半角)に換えただけでOK でした。恥爺。
あとはテキスト画面の広さを変えて、ゴニョゴニョっとやれば大丈夫ですね。そのうち、、

※ Tcl は現時点でも、使えるWidget が多く先々とても楽しみな言語です。
「予約語が紛らわしく感じる」とか「整合性に欠ける部分がある」とか言う人もいますが、今 後の VerUpで改善され、多くの大規模なシステムでも使われるようになると思います。

あと、予期していたことですがコマンドラインでの処理より少し遅くなるかな、という程度で、 それもほとんどデータ読み込み時だけの問題だし、使い勝手は格段に良くなるので今年の 夏休みのテーマが決まったも同然というところです。

テキストボックスへの出力では、やはり試行錯誤が必要で時間がかかりそうなので、データ 出力は今までどおりのコマンドプロンプト画面を利用することにします。
解決すれば、枠の色のほかチェック項目なども自由に配色できるので綺麗になるのですが、 先の話になります。


⇒⇒ とりあえず、こちらに Perl/Tk 版スクリプトを置きます。
修正版が出来たら古いのは一つだけ残して、差替えることにします。
kbcfg.ini は上書きすると前の設定が消えるので注意!
Config::Simple 不要版

(2005.08.06) kbsTk_0022 差替え (リンクを切ってあります)

(2005.08.08) kbsTk_0023 本体のみ (リンクを切ってあります)

 ↑ これで大きな問題がなければ、最終版とします。
★★ kbsTk の簡単な使い方です。⇒  使い方の案内 (2005.08.08 Re)
このページと併せて、参考にしてください。

(2005.12.23) kbsTk_0025 (リンクを切ってあります)

 ↑ 再修正版です。但し 注: kbcfg.ini などの互換性はありません。
 ついでに、有馬記念など枠順の決まっているレースも出力できるようにした。

基本的な使い方としては、拡張子⇒ pl と perl を関連付けします。
画面の調整は、
kbsTk.pl を (W)クリックして開いた大きい方の画面の上端のバーで右クリック。
プロパティから、オプション、フォント、レイアウト、画面の色を決めてOK。
同じタイトルのウィンドウに適用するにチェックしてOK。
設定はいつでも変更できるので満足いくまで試してください。



kbsTk.pl のボタン付きの画面は、見てのとおりのもので、右側のリストBOXには 出力できるはずの年月日が表示されています。
Ver.によって細部は異なりますが基本的な配置は一緒です。
ここに日付が出ない場合は、ファイルの場所のパスが違うか別の原因があるわ けで、振り出しに戻る。。です。
その、日付の行をクリックすると、大きい(コマンドプロンプト)画面の上のほうに、例えば



のように出ます。これに要する時間は、環境によって違います。
ただ、その日の基本データを読み込んでしまえば、速報系データで待たされることはあ りません。
あとは、場とレースNoを選ぶとスグに画面に、データが表示されるので確かめて ください。
画面表示のスイッチはレースナンバーで、指定することで画面が更新 されます。
JVDTXT などで新しいオッズが取得されていれば、当然あたらしいデータで表示 されます。

スクリプトの内容自体は、denm〜.pl の新しい Ver. というだけですが、今後は こちらを進めていく予定です。
スクリプトはテキストファイルなので、Perl を知らない人でも書き換えることが出来ます。
これを機会に、スクリプトの世界に足を踏み入れてはいかがでしょうか。

テキストBOXへの出力を見たい or 活用しようという方は、ini ファイルの設定 でテスト画面が出るようにできます。
少し字が小さいのですが、色をつけたりもできるし高機能なようです。
まぁ、気が向けば取り組むかもしれません。


で、現在までの問題点としては、文字処理に関してのことが殆どです。
ボタンなどの文字化けを防ぐために、use encoding "sjis" としています。
一方、そうすると他の問題が生じて、従来のスクリプトとは違う手法が必要に なります。例えば、JVデータは固定長なのですが、1バイトと2バイト文字とが 混在している場合が結構厄介で、馬データなどの場合はファイル長を求めて から逆算で位置を決めるというようなことをしないとダメなようです。

こうした対策については、スクリプトをみれば理解できると思いますが、 忘れないうちに少しづつでも書いておくつもりでいます。
Perl のバージョンに関しては、なるべく最新のものでテストするように心がけています。
ただし、しばらく様子を見てからインストールという感じですが。

Perl/Tkは、実際に使ってみると使いやすいし見栄えなども自在に変えられるので、これは、 イイおもちゃです。
使いこなせなくてもマネッコだけでも、便利なツールが出来そうです。
オッズ表示や戦歴表もワンクリックで出せるように、簡単に出来るはずですが自分に必要な 機能だけで充分ですね。
この辺は好きなように自分オンリーのオリジナルに作りかえて楽しんでください。


トップページへ 次へ