基礎編
ここから実際にJVDataをダウンロードするプログラムを作ります(ようやく)。 |
1.まず”レース補てん情報”(RCOV)をダウンロードするプログラムを作ります。
レース補てん情報は、土日分のマスタデータを一括で取得します。
内容は、”馬主マスタ(BN)”、”生産者マスタ(BR)”、”調教師マスタ(CH)”、”騎手マスタ(KS)”、”レース詳細(RA)”、”レコード情報(RC)”、”馬毎レース情報(SE)”、”競走馬マスタ(UM)”です。
@”Top”シートにコマンドボタンを貼り付けます。
デザインモードでコントロールツールボックスを表示して、コマンドボタンを貼り付け、Captionを”@レース補てん情報取得[RCOV]”としてください。下図参照。セル幅は適宜調整してください。
頭の@はデータ取得の順番の目安ですので、なくても構いません。

デザインモード・オン(ボタンの周囲に○がつく)で”@レース補てん情報取得[RCOV]”ボタンをダブルクリックするとCommandButton2のサブルーチンが表示されるので、コードウィンドウに下記コードを記述します。
すでにSheet(Top)には先に作ったCommandButton1(初期設定シートへ)のコードがありますので、その下に出ているCommandButton2の中に記述するコードです。一番上のコメント部分は不要ですので特にコピーする必要はありません。(Sheet(Top)には前回作成した他のサブルーチンもあります)
終わったらコントロールツールボックスのデザインモードを終了してコントロールツールボックスをクローズしてください(ボタン周囲の○が消えます)。
プログラムのポイント
”C7”セルのFromTimeデータを読み込んで”レース補てん情報取得”というサブルーチンに渡すだけです。
”レース補てん情報”をダウンロードするフローチャートの考え方は下図のイメージです。

A標準モジュールを挿入し、"mMod2"と名前を付けてください。
mMod2に下記のコードを記述してください。これは、上記の[レース補てん情報取得]用のサブルーチンです。
|
B次いで標準モジュール”mMod2”に下記を記述します。
これは上記のプログラムの中で使う”JVDataを解読”するサブルーチンです。[ReadJVData]
ダウンロードしたデータはキャッシュメモリに保存されますが、それを読み出して解凍と解読をするのがJVLinkモジュールの”JVRead”です。
このサブルーチンは、
(a)読み込んだバッファの内容で”レコード種別ID”を判定し、データの区切りで前に作ったディレクトリの\CopyData2の「年月日+R」フォルダを作りセーブします。
(b)セーブと同時にワークシートにファイル名を表示します。(キャッシュの内容は消えてしまいますが、\CopyData2にセーブしたデータは後で読み出すことができます)
Cさらに続いて”mMod2”に下記コードを追加します。これは上記の中で実際にデータのセーブとワークシートへの表示を行うサブルーチンです。セーブは".dat"形式で行います。[SaveRaceInfoData]
プログラムのポイント
データ種別ID(RACEかRCOV)によりデータを保存するフォルダ名を振り分ける点です。
長いプログラムが続きますが、レコード種別により振り分けるためで、似たコードの繰り返しが多いので、1つを理解すればあとは簡単と思います。
以上が終わったら、いったん上書き保存してください。 |
2.<レース補てん情報取得[RCOV]>ボタンをクリックしてプログラムを実行してください。
”C5”セルにダウンロード状況を表示しながら、下の方にファイル名を表示していくのが分かると思います。
各マスタデータには過去の通算成績などの情報があります。
馬毎レース情報(SE)には土日に登録された競走馬マスタ(UM)の全馬の過去の全戦績が含まれます。
レース詳細(RA)はSEに含まれる全馬の出走した過去の全レースの内容が含まれます。
データ量としてはSE、RAの順に多く、ダウンロード後の読み込み処理にも時間がかかります。下図のようにセル”C9”にファイル数が表示され、11行目以下に8つのファイル名が表示されれば正常です。
"C5"セルに「レース補てん情報取得完了」と表示されれば終了です。

フォルダ(\CopyData2)の中を見るとダウンロード前にはなかった[YYMMDDR](後ろに"R"がつく)形式のフォルダができており、さらにその中にワークシートに表示された".dat形式"のファイルが保存されているのが見えると思います。
(上図と下図はデータ日付が異なるので、ファイル名やデータサイズは一致しません)

続けて再度、ボタンを押すと今度は「該当データなし」と”C5”セルに出る場合がありますが、それでも正常です。つまりFromtimeに合ったデータをダウンロードしたので、それ以上新しいデータがないという意味です。
ファイル名は表示されますが、これはセーブ済みのものを読み込むからです。
次週にFromtimeが更新されればまた新しいデータが取得できます。
注意:ファイル名欄をダブルクリックしてもまだ他のワークシートへ表示がされません。まだそのプログラムを作っていませんので。。。これは後で作ります。
とりあえずはここでJVDataをダウンロードし、データを保存するプログラムを作ったと理解してください。
以上で、レース補てん情報取得のプログラムは完成です。 |
次回は、”レース情報(RACE)”を取得するプログラムを作ります。方法は似ています。 |
ページトップへ |