JRA公式競馬データ配信サービス JRA-VAN Data Lab.

JRA-VAN DataLab.

競馬ソフト開発コーナー

JV-Link 質問箱

一括表示 リストに戻る
タイトル速報系情報取得(JVRTOpen)における、パラメータ取得方法について
記事No7024
投稿日: 2022/11/29(Tue) 00:24
投稿者1484
お手数おかけします、ご回答頂けますと幸いでございます。

JV-Linkを使って、JVRTOpenメソッドで速報系のデータを取得するプログラムを書いているのですが、

JVRTOpen に渡すためのパラメータについて、(払戻確定など)Dataspec別で2パターンあると思うのですが、
「YYYYMMDDJJRR」
「TTYYYYMMDDJJRRNNNNNNNNNNNNNN」
後者について、とある一日(例:20221127)の当該パラメータの一覧を取得する手段はありますでしょうか。

前者については、上記データフォーマットに合わせてレースごとのパラメータを作り、JVRTOpen実行すれば(レースごと払い戻し情報などが)取得できることが確認できているのですが、
後者は実行に必要なパラメータについて、NNNNNNNNNNNNNN部の取得ができていない現状です。

DataLab検証ツール.速報系.変更情報にて、年月日情報を設定して「パラメータ取得」押下すると、
別window「変更情報一覧」にて、当該日の変更情報の一覧が取得できています。
…上記一覧情報を取得したく、当該ツールで出来ているということは、JV-Link操作にて個別実装も可能なのであろう前提認識です(相違あれば申し訳ございません)

…JVWatchEventを使えばよいのでしょうか。
 VBのサンプルコードがありますが、当方VBは疎く、、別コードで試行錯誤しているのですが、
 メソッドとしての戻り値:0だけしか取得してくることができないまま、立ち止まってしまっており。。
 …VB以外で実装/実働確認が取れている言語等、ご存じの方がいらっしゃれば、重ねてご教示頂けると幸甚です(当方都合においては、できるならpython、次点c#での実装ができるとうれしい次第です)
※もしくは、当該処理が、JVLinkモジュールの仕様の問題なのか、(WithEvents等)VBに依存した書き方なのか、がわかるのでも大変有難いです。。

以上、記載に不足等ありましたら、その旨ご教示頂けると幸いです。
お手数おかけし大変恐縮ではございますが、何卒宜しくお願い致します。

タイトルRe: 速報系情報取得(JVRTOpen)における、パラメータ取得方法について
記事No7025
投稿日: 2022/11/29(Tue) 08:04
投稿者Tachyon
ただ単に全変更情報が必要なのであれば、データ種別ID:0B14【速報開催情報(一
括)】、YYYYMMDD【開催日単位】でJVRTOpen後、JVReadを繰返せば取得できます


変更イベント毎に情報を取得する必要があるのであれば、イベントを監視し引
き渡されるパラメータをkeyとしてJVRTOpenを行う必要があります。

C#でのイベント監視の記述例として、下記に示します。

private JVLinkClass clsJVLink = new JVLinkClass();

private void Form1_Load(object sender, EventArgs e)
{
// 各イベント時の処理定義
clsJVLink.JVEvtPay += DoJVEvtPay;
clsJVLink.JVEvtJockeyChange += DoJVEvtJockeyChange;
clsJVLink.JVEvtWeather += DoJVEvtWeather;
clsJVLink.JVEvtCourseChange += DoJVEvtCourseChange;
clsJVLink.JVEvtAvoid += DoJVEvtAvoid;
clsJVLink.JVEvtTimeChange += DoJVEvtTimeChange;
clsJVLink.JVEvtWeight += DoJVEvtWeight;

// イベント監視開始
int intRet = clsJVLink.JVInit("UNKOWN");
if (intRet == 0)
intRet = clsJVLink.JVWatchEvent();
}

private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
// イベント監視終了
int intRet = clsJVLink.JVWatchEventClose();
}

private void DoJVEvtPay(string bstr)
{
// 払戻確定時の処理を追加
int intRet = clsJVLink.JVRTOpen("0B12", bstr);
(中略)
}

private void DoJVEvtJockeyChange(string bstr)
{
// 騎手変更時の処理を追加
}

private void DoJVEvtWeather(string bstr)
{
// 天候馬場状態変更時の処理を追加
}

private void DoJVEvtCourseChange(string bstr)
{
// コース変更時の処理を追加
}

private void DoJVEvtAvoid(string bstr)
{
// 出走取消・競走除外時の処理を追加
}

private void DoJVEvtTimeChange(string bstr)
{
// 発走時刻変更時の処理を追加
}

private void DoJVEvtWeight(string bstr)
{
// 馬体重発表時の処理を追加
}

ご参考まで。

タイトルRe^2: 速報系情報取得(JVRTOpen)における、パラメータ取得方法について
記事No7026
投稿日: 2022/11/29(Tue) 15:50
投稿者1484
早速のご教示ありがとうございます!

JVRTOpenにて、YYYYMMDD・'0B14'指定で、欲しいデータが問題なく
取得できました。
…0B14というデータIDの存在を正しく認識できておりませんでした。。
 …JVData仕様書の読込みが足りておらず、、しっかり目を通しておきたいと
思います。。

イベント監視のサンプルコードについても、ありがとうございます!
参考にさせて頂いた上で、当該メソッド(JVWatchEvent)か、'0B14'
指定でのJVRTOpenメソッドがよいか、考えていければと思っています。

お手数おかけし、大変失礼いたしました。
重ね重ねありがとうございました。

ウィンドウを閉じる