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

JRA-VAN DataLab.

競馬ソフト開発コーナー

JV-Link 質問箱

一括表示 リストに戻る
タイトルRACE取得時、JGのデータしか取得できない
記事No9932
投稿日: 2017/02/20(Mon) 01:52
投稿者oga
DataLab300.pdfに書かれているサンプルをもとにデータを取得したところ、
RACE情報が一部(JGのデータ)しか取得できないです。
version は 4.5.1 になります。

現在利用料を課金されている状態ですので、至急回答をください。

C#で作成していて、
JVOpen時に下記のように設定しています。
JVInitは実施済みです。


string Data_Spec = "RACE"; //データ
種別に「レース情報」を設定
string From_Time = "20170101000000"; //Fromタ
イムに2003年1月1日を設定
int Option_Flag = 2; //オプションに「今週
データ」を設定
int ReadCount = 0;
int DownloadCount = 0;
string LastTime;

retVal = this.axJVLink1.JVOpen(Data_Spec, From_Time, Option
_Flag, ref ReadCount, ref DownloadCount, out LastTime);

この後JVReadを実行していますが、JGのデータしか取得できません。

タイトルRe: RACE取得時、JGのデータしか取得できない
記事No9950
投稿日: 2017/02/20(Mon) 15:06
投稿者hide
JRA-VANソフトサポートではないですが、

JVReadをループで全ファイル読み込み終了まで実行していますか?
おそらく先頭のJGを取得して終了してるような気がします。

タイトルRe^2: RACE取得時、JGのデータしか取得できない
記事No9965
投稿日: 2017/02/21(Tue) 05:46
投稿者oga   <oga33cross@gmail.com>
ループですべて読み込んでいます。



> JRA-VANソフトサポートではないですが、
>
> JVReadをループで全ファイル読み込み終了まで実行していますか?
> おそらく先頭のJGを取得して終了してるような気がします。

タイトルRe^3: RACE取得時、JGのデータしか取得できない
記事No9966
投稿日: 2017/02/21(Tue) 07:12
投稿者hide
> ループですべて読み込んでいます。

そうでしたか…

ちなみにJGしか取れないとのことですが、
JGのレコードは複数件取れてるんでしょうか?

タイトルRe^4: RACE取得時、JGのデータしか取得できない
記事No9967
投稿日: 2017/02/21(Tue) 23:14
投稿者oga

> ちなみにJGしか取れないとのことですが、
> JGのレコードは複数件取れてるんでしょうか?

ReadCountが68件の時に68件とれていて、それぞれ別のデータになって慰安す。
が、すべてJGのみです。

タイトルRe^5: RACE取得時、JGのデータしか取得できない
記事No9968
投稿日: 2017/02/21(Tue) 23:19
投稿者oga
InitからCloseまでのソースを載せます。



int retVal = axJVLink1.JVInit("UNKNOWN");
if ( retVal != 0 )
{
MessageBox.Show("Error = " + retVal);
return;
}
string Data_Spec = "RACE"; //データ
種別に「レース情報」を設定
string From_Time = "20170101000000"; //Fromタ
イムに2003年1月1日を設定
int Option_Flag = 1; //オプションに「今週
データ」を設定
int ReadCount = 10;
int DownloadCount = 0;
string LastTime;

retVal = this.axJVLink1.JVOpen(Data_Spec, From_Time, Option
_Flag, ref ReadCount, ref DownloadCount, out LastTime);


MessageBox.Show("該当するデータがありません。" +
ReadCount + " / " + DownloadCount + " / " + LastTime
);

JVData_Struct.JV_RA_RACE race = new JVData_Struct.JV_RA_RAC
E();

int bufsize = 1500;
string buff = null;
string name;

for ( int i = 0; i < ReadCount; i++)
{
while (axJVLink1.JVRead(out buff, out bufsize, out name
) == -3) ;

string RecordSpec = buff.Substring(0, 2);
MessageBox.Show(i + " / " + buff);
if (RecordSpec == "RA")
{

race.SetDataB(ref buff);

textBox1.AppendText(race.id.Year + "/" +
race.id.MonthDay + " " +
race.id.JyoCD + " " +
race.id.Kaiji + " " +
race.id.Nichiji + " " +
race.id.RaceNum + " " +
race.RaceInfo.Hondai + "\n");
}
}

axJVLink1.JVClose();

}

タイトルRe^6: RACE取得時、JGのデータしか取得できない
記事No9969
投稿日: 2017/02/22(Wed) 07:24
投稿者hide
ReadCountでループしてるからではないでしょうか?

JVReadの戻り値が0(全ファイル読み込み終了)になるまで
にすれば大丈夫だと思います。

> InitからCloseまでのソースを載せます。
>
>
>
> int retVal = axJVLink1.JVInit("UNKNOWN");
> if ( retVal != 0 )
> {
> MessageBox.Show("Error = " + retVal);
> return;
> }
> string Data_Spec = "RACE"; //
データ
> 種別に「レース情報」を設定
> string From_Time = "20170101000000"; //Fr
omタ
> イムに2003年1月1日を設定
> int Option_Flag = 1; //オプションに
「今週
> データ」を設定
> int ReadCount = 10;
> int DownloadCount = 0;
> string LastTime;
>
> retVal = this.axJVLink1.JVOpen(Data_Spec, From_Time, O
ption
> _Flag, ref ReadCount, ref DownloadCount, out LastTime);
>
>
> MessageBox.Show("該当するデータがありません。&quo
t; +
> ReadCount + " / " + DownloadCount + " / " + La
stTime
> );
>
> JVData_Struct.JV_RA_RACE race = new JVData_Struct.JV_R
A_RAC
> E();
>
> int bufsize = 1500;
> string buff = null;
> string name;
>
> for ( int i = 0; i < ReadCount; i++)
> {
> while (axJVLink1.JVRead(out buff, out bufsize, out
name
> ) == -3) ;
>
> string RecordSpec = buff.Substring(0, 2);
> MessageBox.Show(i + " / " + buff);
> if (RecordSpec == "RA")
> {
>
> race.SetDataB(ref buff);
>
> textBox1.AppendText(race.id.Year + "/&quo
t; +
> race.id.MonthDay + " " +
> race.id.JyoCD + " " +
> race.id.Kaiji + " " +
> race.id.Nichiji + " " +
> race.id.RaceNum + " " +
> race.RaceInfo.Hondai + "\n")
;
> }
> }
>
> axJVLink1.JVClose();
>
> }

タイトルRe^7: RACE取得時、JGのデータしか取得できない
記事No9973
投稿日: 2017/02/22(Wed) 22:29
投稿者oga
すばらしい!
ReadCountはレコード数だと思い込んでいました。
ファイル数だったのですね。

ありがとうございました!!


> ReadCountでループしてるからではないでしょうか?
>
> JVReadの戻り値が0(全ファイル読み込み終了)になるまで
> にすれば大丈夫だと思います。
>
> > InitからCloseまでのソースを載せます。
> >
> >
> >
> > int retVal = axJVLink1.JVInit("UNKNOWN"
);
> > if ( retVal != 0 )
> > {
> > MessageBox.Show("Error = " + retVal
);
> > return;
> > }
> > string Data_Spec = "RACE";
//
> データ
> > 種別に「レース情報」を設定
> > string From_Time = "20170101000000";
//Fr
> omタ
> > イムに2003年1月1日を設定
> > int Option_Flag = 1; //オプショ
ンに
> 「今週
> > データ」を設定
> > int ReadCount = 10;
> > int DownloadCount = 0;
> > string LastTime;
> >
> > retVal = this.axJVLink1.JVOpen(Data_Spec, From_Ti
me, O
> ption
> > _Flag, ref ReadCount, ref DownloadCount, out LastTime);
> >
> >
> > MessageBox.Show("該当するデータがありません
。&quo
> t; +
> > ReadCount + " / " + DownloadCount + " / "
+ La
> stTime
> > );
> >
> > JVData_Struct.JV_RA_RACE race = new JVData_Struct
.JV_R
> A_RAC
> > E();
> >
> > int bufsize = 1500;
> > string buff = null;
> > string name;
> >
> > for ( int i = 0; i < ReadCount; i++)
> > {
> > while (axJVLink1.JVRead(out buff, out bufsize
, out
> name
> > ) == -3) ;
> >
> > string RecordSpec = buff.Substring(0, 2);
> > MessageBox.Show(i + " / " + buff);
> > if (RecordSpec == "RA")
> > {
> >
> > race.SetDataB(ref buff);
> >
> > textBox1.AppendText(race.id.Year + "
/&quo
> t; +
> > race.id.MonthDay + " " +
> > race.id.JyoCD + " " +
> > race.id.Kaiji + " " +
> > race.id.Nichiji + " " +
> > race.id.RaceNum + " " +
> > race.RaceInfo.Hondai + "\n&q
uot;)
> ;
> > }
> > }
> >
> > axJVLink1.JVClose();
> >
> > }

ウィンドウを閉じる