• 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#で使ってみる(WinForms版) ~2.JV-Dataをダウンロードする~

2018-10-18 by さえきさん

目次

  • 参考
    • 前回記事
    • 今回のソースコード
  • 開発環境
  • フォームの編集
    • データ取得ボタンの作成
  • コードの編集
    • JVInit()の使用方法
    • JVOpen()/JVClose()関数の使用方法

参考

競馬ソフト開発体験教室(https://jra-van.jp/dlb/sdv/trial.html)
Lesson.2 JV-Dataをダウンロードする

注:上記の参考サイトを元にVBからC#へ移植する進めていきます。

前回記事

JV-LinkをC#で使ってみる(WinForms版) ~1.サービスキーを入力する仕組みを用意する~

今回のソースコード

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


開発環境

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

フォームの編集

データ取得ボタンの作成

フォームデザイナーで[ツールボックス]から「Button」を貼り付けます。

「Button」の設定を以下のように変更します。

プロパティ 値
(Name) btnGetJVData
Text データ取得

コードの編集

JVInit()の使用方法

仕様書によると、

※アプリケーションの初期化時に呼び出しを行ってください。JVOpenあるいはJVRTOpenの都度呼び出す必要はありません。

との事なので、JVInit()関数はアプリケーションの起動時に一回呼び出せば問題ありません。ここではサンプル同様に、フォームのLoadイベントで呼び出します。Loadイベントの作成には、まず「プロパティウィンドウ」のイベントボタンを押下します。イベント一覧の中からLoadをダブルクリックすると、Loadイベントの関数が作成されます。

エディタにfrmMain_Load()関数が作成されますので、参考サイトのソースコードを移植します。

private void frmMain_Load(object sender, EventArgs e)
{
    string sid;
    int nReturnCode;

    // 引数設定
    sid = "Test";

    // JVLink 初期化
    nReturnCode = AxJVLink1.JVInit(sid);

    // エラー判定
    if (nReturnCode != 0)
    {
        MessageBox.Show("JVInit エラー コード:" + nReturnCode + ":", "エラー", MessageBoxButtons.OK, MessageBoxIcon.Error);
        Cursor = System.Windows.Forms.Cursors.Default;
    }
}

今回はVBサンプルに従ってSID(ソフトウェアID)には「Test」と言うIDを指定しています。 (一般的には「UNKNOWN」を使用するようです。)

JVOpen()/JVClose()関数の使用方法

参考サイトのLesson.2のVBソースコードをC#へ移植します。なるべくそのまま移植しますが、以下の変更が必要になります。

  • [lOption][lReadCount][lDownloadCount]をlongではなくintで宣言する必要がある。

注:32ビット符号付整数で受け渡す必要があります。

  • [lReadCount][lDownloadCount]に初期値を与える必要がある。

注:引数を参照渡しする時、C#では未割当の変数はコンパイルエラーとなります。

データ取得ボタンをダブルクリックすると、データ取得ボタンのClickイベントの関数が作成されます。コードエディタ側にbtnGetJVData_Click()関数が作成されますので、ソースコードを移植します。

private void btnGetJVData_Click(object sender, EventArgs e)
{
    int nReturnCode;

    try
    {
        string strDataSpec;          // JVOpen: ファイル識別子
        string strFromTime;          // JVOpen: データ提供日付
        int nOption;                 // JVOpen: オプション
        int nReadCount;              // JVOpen: 戻り値
        int nDownloadCount;          // JVOpen: 総ダウンロードファイル数
        string strLastFileTimestamp; // JVOpen: 最新ファイルのタイムスタンプ

        // 引数設定
        strDataSpec = "RACE";
        strFromTime = "20050301000000";
        nOption = 2;
        nReadCount = 0;
        nDownloadCount = 0;

        // JVLink ダウンロード処理
        nReturnCode = AxJVLink1.JVOpen(strDataSpec, strFromTime, nOption, ref nReadCount, ref nDownloadCount, out strLastFileTimestamp);

        // エラー判定
        if (nReturnCode != 0)
        {
            MessageBox.Show("JVOpen エラー:" + nReturnCode);
        }
        else
        {
            MessageBox.Show(
                "戻り値 : " + nReturnCode + "\n" +
                "読み込みファイル数 : " + nReadCount + "\n" +
                "ダウンロードファイル数 : " + nDownloadCount + "\n" +
                "タイムスタンプ : " + strLastFileTimestamp);
        }
    }
    catch (Exception ex)
    {
        Debug.WriteLine(ex.Message);
        return;
    }

    // JVLink 終了処理
    nReturnCode = AxJVLink1.JVClose();
    if (nReturnCode != 0)
    {
        MessageBox.Show("JVClose エラー:" + nReturnCode);
    }
}

コードの編集が完了したらプログラムを実行し、データ取得ボタンを選択して動作を確認します。

ちなみに、関数名がJVOpen()となっていますが実際には JV-Data のダウンロードまで行われます。ダウンロードするための専用の関数は存在しません。


以上で、 JV-Data のダウンロードが完了となります。ただし、現段階ではダウンロードしただけなので、どのようなデータをダウンロードしたのかはわかりません。

Filed Under: JV-LinkをC#で使ってみる(WinForms版), 競馬でプログラミング 関連タグ: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