VB.NETでJVLinkからデータ取得 3 コーディング 1
JVLink入手
https://jra-van.jp/dlb/#tab5
DataLab.(データラボ) 会員サービス ソフト開発サポート
https://jra-van.jp/dlb/sdv/sdk.html
JRA-VAN Data Lab.開発ガイド(Ver.4.2.2)
https://jra-van.jp/dlb/sdv/sdk/DataLab422.pdf
JV-Data 仕様書PDF版(Ver.4.9.0)
https://jra-van.jp/dlb/sdv/sdk/JV-Data490.pdf
Microsoft Visual Studio Community 2019
https://visualstudio.microsoft.com/ja/vs/older-downloads/
前置きが長くなりましたがここからコーディングです。
コーディングの準備
Form1に表示されているButton1をダブルクリック
VB.NETではこのClassとEnd Classの中のSubとEnd Subの中にコードを書いていくことになります。
Private Subの下の空白の行に、以下のコードを貼りつけましょう。
' 取得したいレースIDを指定
Dim raceNum As String = "2024030306020411"
' JVLinkからの戻り値を格納する変数を定義
Dim retval As Long
' 定数としてretvalのバッファサイズを指定
Const buffSize As Long = 1000
' JVLink初期化を実施
Me.AxJVLink1.JVInit("UNKNOWN")
' 0B31からレースIDを引数にして人気オッズを読み込みを開始
retval = Me.AxJVLink1.JVRTOpen("0B31", raceNum)
' retvalが負の値だと何かしらのエラーが発生しているので処理を中断
If retval < 0 Then
MsgBox("JVRTOpenエラー。RC=" & retval)
Exit Sub
End If
' JVRTOpenが成功した事をTextBoxにを表示
TextBox1.AppendText("JVRTOpen成功。RC=" & retval & Environment.NewLine)
' データ読み込みのためのループを開始
Do
' データを格納するためのバッファを準備
Dim rawRaceData As String = New String(vbNullChar, buffSize)
' JVLinkからデータを読み込む
retval = AxJVLink1.JVRead(rawRaceData, buffSize, Nothing)
If retval = -1 Then ' データの終端に達したらループを終了
Exit Do
ElseIf retval < 0 Then ' JVReadエラー処理
MessageBox.Show("JVReadエラー。RC=" & retval)
Exit Do
ElseIf retval > 0 Then ' データが正常に読み込まれたら表示変換を行う
'↓↓↓
' 必要なデータのみを抽出するためのロジック
' "O" 以降のデータを抽出する
'Dim datastartindex As Integer = rawRaceData.IndexOf("O"c) + 1
'If datastartindex > 0 Then
' Dim validdata As String = rawRaceData.Substring(datastartindex).Trim()
' ' 空白文字が出現する位置を見つける
' Dim endindex As Integer = validdata.IndexOf(" "c)
' If endindex > 0 Then
' validdata = validdata.Substring(0, endindex)
' End If
' TextBox1.AppendText("抽出データ: " & validdata & Environment.NewLine)
'End If
'↑↑↑
' ※※※ ↓この1行は生の取得データを確認したらコメントアウトし、上の矢印内のコメントアウトを解除する
TextBox1.AppendText("取得データ: " & rawRaceData & Environment.NewLine)
End If
Loop While retval <> 0
' JVCloseを呼び出してセッションを終了
Me.AxJVLink1.JVClose()
貼り付け開始位置はここです。合わないとインデントエラーになるかもしれません。
貼り付けたらデザインタブを選択します
次に、上部のメニューのビルドを選んでソリューションのビルドを選択
Form1が立ち上がるので、Button1をクリックしたらTextBox内にバイナリデータが表示されます。
※現在このコードを実行するとエラーになります。理由と解説は次の記事にて。
手順としてはここまでOKでしょうか。
次はエラー対処です。
そして、その先はこのバイナリーデータを意味のあるデータとして扱えるようにしていきます。
ここからわかりやすさに極振りしていきますので、開発ガイドから大きくそれて行きます。
ガイドにあるような構造体を通すような便利機能を使っての実装まではやりませんので、そちらをお望みの方はこの先の記事は不要となります。
次の記事
この記事が気に入ったらサポートをしてみませんか?