• Skip to main content
  • Skip to primary sidebar
  • Skip to footer
  • Home
  • 日記
  • 競馬でプログラミング
    • JV-LinkをC#で使ってみる(WinForms版)
    • JV-LinkをC#で使ってみる(Console版)
  • このはとウェブログ
    • JavaScriptの話
    • WordPressの話
  • 私のバヌーシー出資馬について

sae-suki-blog.

  • メール
  • Instagram
  • RSS
  • Twitter

JV-LinkをC#で使ってみる(Console版) ~3.JV-Dataの内容を読み出す~

2018-10-19 by さえきさん

目次

  • 参考
    • 前回記事
    • WinForms版
    • 今回のソースコード
  • 開発環境
  • メインプログラムの作成
    • JV-Data構造体の使用方法
    • JV-Data構造体へのデータ読み込み
  • 動作確認

参考

前回記事

JV-LinkをC#で使ってみる(Console版) ~2.JV-Dataをダウンロードする~

WinForms版

JV-LinkをC#で使ってみる(WinForms版) ~3.JV-Dataの内容を読み出す~

今回のソースコード

source – JV-LinkをC#で使ってみる(Console版) ~3.JV-Dataの内容を読み出す~


開発環境

  • Windows7 64ビット版
  • Visual Studio Community 2017
  • JV-Link Ver.4.5.1

メインプログラムの作成

JV-Data構造体の使用方法

WinForms版を合わせてご参照ください。

JV-Data構造体へのデータ読み込み

まず、WinForms版と同様に JV-Data 構造体を使用しますので、先頭に「JVData_Struct」のusingディレクティブを追加します。

using static JVData_Struct;  // JVData_Struct クラス使用のために必要

次に、ここが一番重要な部分なのですが、Mainメソッドに[STAThread]属性を付けます。

[STAThread]
static void Main(string[] args)

JV-Link はマルチスレッドプログラムでは動作が保証されていないので、この記述がないとJVRead()関数の部分でプログラムが強制終了します。

詳しくは以下の掲示板を参照。

競馬ソフト開発コーナー-プログラミング質問広場

次がメインとなる処理の部分です。

WinForms版を合わせてご参照ください。

まず最初にJVRead()を使用してstrBuffにデータを読み込みます。その後、JVRead()の戻り値をもとに分岐させます。戻り値が0より大きい場合(case int ret when ret > 0:の部分)が正常系となっています。読み込みが正常だった場合で、尚且つstrBuffの頭2文字が"RA"だった場合に、データをJV_RA_RACE構造体へ取り込み、構造体をもとに画面表示します。

//=====================================================================================
var nBuffSize = 110000;                         // JVRead: データ格納バッファサイズ
var nNameSize = 256;                            // JVRead: ファイル名サイズ
var strBuff = new string('\0', nBuffSize);      // JVRead: データ格納バッファ
var strFileName = new string('\0', nNameSize);  // JVRead: 読み込み中ファイル名
var raceInfo = new JV_RA_RACE();                // レース詳細情報構造体

bool flg_exit = false;
do
{
    switch (jvLink.JVRead(out strBuff, out nBuffSize, out strFileName))
    {
        case 0: // 全ファイル読み込み終了
            Console.WriteLine("全ファイル読み込み終了\n");
            flg_exit = true;
            break;
        case -1: // ファイル切り替わり
            Console.WriteLine("ファイル切り替わり\n");
            break;
        case -3: // ダウンロード中
            Console.WriteLine("ダウンロード中\n");
            break;
        case -201: // JVInit されてない
            Console.WriteLine("JVInit が行われていません。");
            flg_exit = true;
            break;
        case -203: // JVOpen されてない
            Console.WriteLine("JVOpen が行われていません。");
            flg_exit = true;
            break;
        case -503: // ファイルがない
            Console.WriteLine(strFileName + "が存在しません。");
            flg_exit = true;
            break;
        case int ret when ret > 0:
            switch (strBuff.Substring(0, 2))
            {
                case "RA":
                    // レース詳細情報を構造体へ格納
                    raceInfo.SetDataB(ref strBuff);
                    // レース詳細を画面表示
                    Console.WriteLine(
                        "年:" + raceInfo.id.Year +
                        " 月日:" + raceInfo.id.MonthDay +
                        " 場:" + raceInfo.id.JyoCD +
                        " 回次:" + raceInfo.id.Kaiji +
                        " 日次:" + raceInfo.id.Nichiji +
                        " R:" + raceInfo.id.RaceNum +
                        " レース名:" + raceInfo.RaceInfo.Ryakusyo10 +
                        "\n"
                        );
                    break;
                default:
                    // 読み飛ばし
                    Console.WriteLine("読み飛ばし\n");
                    jvLink.JVSkip();
                    break;
            }
            break;
    }
}
while (!flg_exit);

動作確認

コードの編集が完了したらプログラムを実行して動作を確認します。


以上で、 JV-Data のデータ読み込みが完了となります。

Filed Under: JV-LinkをC#で使ってみる(Console版), 競馬でプログラミング 関連タグ:C#, JRA-VAN, 競馬

最初のサイドバー

More to See

csvファイルの配列化がおかしい、、、

2020-09-11 By さえきさん

エターナルハートが転厩するのはまあいいとして、、、

2020-09-09 By さえきさん

フォルダー構成のみなおしがメンドイ( 一一)

2020-09-09 By さえきさん

Tags

C# ConoHa WING CSS Genesis JavaScript JRA-VAN Magazine Pro THE THOR WordPress エターナルハート ギエナー2019 バヌーシー フランクエトワール 競馬

Categories

  • このはとウェブログ (3)
    • JavaScriptの話 (2)
    • WordPressの話 (1)
  • 日記 (17)
  • 競馬でプログラミング (14)
    • JV-LinkをC#で使ってみる(Console版) (6)
    • JV-LinkをC#で使ってみる(WinForms版) (7)

Footer

Profile

avatar
初音ミクが大好きな40代のおじさんです。
最近、バヌーシーで一口馬主を始めました。

Search

Copyright © 2021 · Magazine Pro on Genesis Framework · WordPress