元野良猫のタキシードねこ「るひ・ルヒ・RUHI」との日々の生活

⑩JRA-VAN用競馬ソフトを作る

CATEGORYJRA-VAN
1.「競馬ソフト開発体験教室


〇ステップ3 レッスン開始!
<<< Lesson.1 >>>サービスキーを入力する仕組みを用意する
<<< Lesson.2 >>>JV-Dataをダウンロードする
<<< Lesson.3 >>>JV-Dataの内容を読み出す
<<< Lesson.4 >>>JV-Dataのダウンロード/読み込み進捗状況を表示する



Lesson.5
コード変換を行う

JRA-VANで提供されているプログラミングパーツを利用してコード変換を行い、
取得したJV-Dataを見て分かる情報として表示してみましょう。

【 今回の目標 】
JRA-VANで提供されているプログラミングパーツ「コード変換クラス」を利用して、取得したJV-Dataをコード変換して表示する。
具体的には、取得した情報の中の競馬場コードを競馬場名に変換して表示エリアに表示します。

JV-Linkに実装されている以下のメソッドの使い方を理解する。
・JVSkipメソッドで不要なデータを読み飛ばす。

【構文】
 void JVSkip( );

【パラメータ】
 なし

【戻り値】
 なし

【解説】
 JVOpen で準備した JV-Data を読み込み中に不要なレコード種別を読み飛ばすために使用します。
 JVSkip メソッドを呼び出すと現在読み込み中のファイルにレコードが残っていても次のファイルの先頭までファイルポインタを進めます。
 JVRead/JVGets メソッドは物理的には複数のファイルであっても1つのファイルであるかのように連続してデータを読み出します。蓄積系データは1つのファイルにレコード種別は1種類しか収容されていません。したがって JVRead/JVGets メソッドで読み出されたレコードが処理不要のレコード種別であった場合に JVSkip メソッドを呼び出し、そのファイルに収容されている残りの処理不要レコード を読み飛ばし処理時間を短縮することができます。
 速報系データは1回の JVRTOpen に対して1ファ イルしか返されないので JVSkip には意味がありません。

 例えばデータ種別”DIFF”を dataspec に指定して JVRead/JVGets を行なうと
  ・レース詳細(“RA”) ・馬毎レース情報(“SE”)
  ・競走馬(“UM”) ・騎手(“KS”)
  ・調教師(“CH”) ・生産者(“BR”)
  ・馬主(“BN”) ・レコード(“RC”)
  の8種類のデータを読み出す可能性がありますが、
  このうち”BR”と”BN”が不要なデータである場合には次のロジックにより処理時間が短縮されます。

【注意点】
 ・JVSkip を複数回連続して呼び出しても1回呼び出した場合と同じ動作をします。
 ・JVOpen 直後に JVSkip を呼び出すと次の JVRead/JVGets では2ファイル目の先頭レコードを読み ます。
 ・JVRead/JVGets で-1 が返った直後に JVSkip を呼び出すと次のファイルを読み飛ばします。
 ・JVSkip で読み飛ばしたファイルが最後のファイルである場合は次の JVRead/JVGets で 0 が返ります。


【 やってみよう 】
① JRA-VAN Data Lab.サイトにアクセスし、「ソフト開発コーナー」→「プログラミングパーツ提供コーナー」から、コード変換クラスの中の「Microsoft Visual Basic .NET」版をダウンロードし、解凍しておきます。
 [ ワンポイントメモ ]
 ダウンロードファイルを解凍した際に生成される「README.TXT」は、必ずご一読ください。

② Lesson-4までを実装したフォーム(frmMain)を含むプロジェクトを開きます。

デバックモードで正常稼働するが警告が6個に増えた!

警告 1 変数 'strLastFileTimestamp' は、値が割り当てられる前に参照によって渡されています。Null 参照の例外が実行時に発生する可能性があります。
警告 2 変数 'RaceInfo' は、値が割り当てられる前に参照によって使用されています。Null 参照の例外が実行時に発生する可能性があります。構造体、またはすべての参照メンバーが使用前に初期化されていることを確認してください。
警告 3 変数 'strName' は、値が割り当てられる前に使用されています。Null 参照の例外が実行時に発生する可能性があります。
警告 4 関数 'SetData' には値を返さないコード パスがあります。実行時に結果が使用されると、null 参照の例外が発生する可能性があります。
警告 5 変数 'udtWords' は、値が割り当てられる前に参照によって使用されています。Null 参照の例外が実行時に発生する可能性があります。構造体、またはすべての参照メンバーが使用前に初期化されていることを確認してください。
警告 6 関数 'SetLine' には値を返さないコード パスがあります。実行時に結果が使用されると、null 参照の例外が発生する可能性があります。


Lesson.6 >>>
JV-Dataの内容を読み出す 応用編1(ADO.NETの利用)

COMMENTS

0 Comments

There are no comments yet.

REPLY

Leave a reply