呼出側で用意したデータ格納バッファを指定します。1行単位で読み出しますので改行コード(0x0d,0x0a)を含めたレコードデータが収容可能なサイズ+1(ストリング終端文字 NULL)を用意します。
呼出側で用意したデータ格納バッファにコピーするデータの長さを指定します。この値がレコード長よりも小さい場合には残りのデータは切り捨てられ、データ格納バッファの最後の1バイトがストリング終端文字 NULL となります。
正常にレコードを読み込んだ場合はバッファーにセットされたデータのバイト数が返ります。
読み込んでいるファイルが次のファイルに切り替わる際には−1が返ります。全てのファイルを読み終わると0が返ります。
エラーが発生した場合にはエラーの理由コードとして負の数が返されます。(「コード表」参照)
−1の戻り値は実際には物理ファイルの終わりに返されるので、全てのファイルの終わりには一度−1が返った後、次の呼び出しで0が返されます。
読み込んでいるファイルが次のファイルに切り替わる際には−1が返ります。全てのファイルを読み終わると0が返ります。
エラーが発生した場合にはエラーの理由コードとして負の数が返されます。(「コード表」参照)
−1の戻り値は実際には物理ファイルの終わりに返されるので、全てのファイルの終わりには一度−1が返った後、次の呼び出しで0が返されます。
戻り値 | 意味 | 原因と対処 |
---|---|---|
0以上 | 正常(バッファにセットしたデータのサイズ) | |
0 | 全ファイル読み込み終了(EOF) | JVOpen で取得した全てのデータの終わりを示しています。 読み込み処理を終了してください。 |
−1 | ファイル切り替わり | エラーではありません。 物理ファイルの終わりを示しています。 バッファーにはデータが返されませんのでそのまま読み込み処理を続行してください。 |
−3 | ファイルダウンロード中 | 読み出そうとするファイルがダウンロードの最中です。 少し待ってから読み込みを再開してください。 |
−201 | JVInitが行なわれていない | JVRead/JVGets に先立ってJVInit/JVOpen が呼ばれていないと思われます。 必ずJVInit/JVOpenを先に呼び出してください。 |
−202 | 前回のJVOpen/JVRTOpen/JVMVOpen に対してJVClose が呼ばれていない(オープン中) | 前回呼び出したJVOpen/JVRTOpen/JVMVOpen がJVClose によってクローズされていないと思われます。 JVOpen/JVRTOpen/JVMVOpen を呼び出した後、別のOpenを呼び出す場合、先にJVCloseを呼び出してください。 |
−203 | JVOpenが行なわれていない | JVRead/JVGets に先立ってJVOpen が呼ばれていないと思われます。 必ずJVOpenを先に呼び出してください |
−402 | ダウンロードしたファイルが異常(ファイルサイズ=0) | ダウンロード中に何らかの問題が発生しファイルが異常な状態になったと思われます。 JVFileDeleteで該当ファイル(JVRead/JVGets から戻されたファイル名)を 削除し、再度JVOpen からの処理をやりなおしてください。 |
−403 | ダウンロードしたファイルが異常(データ内容) | 同上 |
−502 | ダウンロード失敗(通信エラーやディスクエラーなど) | ダウンロード処理に失敗しました。エラーの原因を除去しないかぎり解決しないと思われます。 原因を除去できたらJVClose を呼び出し、JVOpen からの処理をやりなおしてください。 サーバーが混雑している場合のタイムアウトでもこの戻り値が返されることがあります。 |
−503 | ファイルが見つからない | JVOpen からJVRead/JVGets までの間に読み出すべきファイルが削除された、または該当ファイルが使用中と思われます。 JVOpen からやりなおせば解消しますが、削除された原因を除去するを除去する必要があります。 |
JVOpen / JVRTOpen で準備した JV-Data を現在のファイルポインタから1行分読み出します。
JVOpen / JVRTOpen を行なわずに JVRead メソッドを呼び出すとエラーが返ります。
JVOpen ではデータ種別IDが複数指定できるため、JVRead メソッドは物理的には複数のファイルで あっても1つのファイルであるかのように連続してデータを読み出します。
ただし、ファイル間をまたぐごとに戻り値としてファイル切り替わり(−1)が返り、全てのファイルを読 み終わった際に戻り値として EOF(0)が返ります。
例えば「2002 年 11 月 10 日以降現在までの RACE データ」を指定して読み出した場合に、レース詳細データが 36 件存在したとすると1回目から 36 回目の呼出しまではレース詳細のレコードが 1 行ずつバッファにセットされ、37 回目の呼び出しでファイル切り替わり(−1)が返されます。
38 回目以降の呼出しには馬毎レース情報がセットされます。全てのレコードが無くなった時点で EOF(0)が返されます。
JVOpen / JVRTOpen を行なわずに JVRead メソッドを呼び出すとエラーが返ります。
JVOpen ではデータ種別IDが複数指定できるため、JVRead メソッドは物理的には複数のファイルで あっても1つのファイルであるかのように連続してデータを読み出します。
ただし、ファイル間をまたぐごとに戻り値としてファイル切り替わり(−1)が返り、全てのファイルを読 み終わった際に戻り値として EOF(0)が返ります。
例えば「2002 年 11 月 10 日以降現在までの RACE データ」を指定して読み出した場合に、レース詳細データが 36 件存在したとすると1回目から 36 回目の呼出しまではレース詳細のレコードが 1 行ずつバッファにセットされ、37 回目の呼び出しでファイル切り替わり(−1)が返されます。
38 回目以降の呼出しには馬毎レース情報がセットされます。全てのレコードが無くなった時点で EOF(0)が返されます。
コメントをかく