| JV-Link 質問箱 |
| タイトル | : JVReadで、ファイルが切り替わるときの戻り値 |
| 記事No | : 7507 |
| 投稿日 | : 2025/01/16(Thu) 11:42 |
| 投稿者 | : たかし |
| |
お世話になります。 JVReadのfilenameが、切り替わる最後のタイミングについて教えてください。
例えば仮に、JVOpenをdataspec="RACE"で呼び出し、JVReadを繰り返 し呼ぶと、"JG〜"の次に"H1〜"が出力引数で得られるとし ます。その2種のそれぞれは1ファイルずつだけを得て、"JG〜"は3 レコード、"H1〜"は2レコードとします。
その場合、JVReadの戻り値は、下記のようになりますか? 呼び出し1回目: 80(JG,フォーマット番号31のレコード長=80バイト) 呼び出し2回目: 80 呼び出し3回目: 80(JGの3レコード目を取得) 呼び出し4回目: -1 呼び出し5回目: 28955(H1,フォーマット番号5のレコード長=28955バイト) 呼び出し6回目: 28955(H1の2レコード目を取得) 呼び出し7回目: -1 呼び出し8回目: 0
それとも、下記でしょうか? 呼び出し1回目: 80(JG,フォーマット番号31のレコード長=80バイト) 呼び出し2回目: 80 呼び出し3回目: -1(3レコード目を取得しつつ、切り替わりなので-1) 呼び出し4回目: 28955(H1,フォーマット番号5のレコード長=28955バイト) 呼び出し5回目: -1(2レコード目を取得しつつ、切り替わりなので-1) 呼び出し6回目: 0
ドキュメントの「−1の戻り値は実際には物理ファイルの終わりに返される」 という記述は後者かなと思いつつ、不明瞭なのでご質問します。 実際には固定長だから2レコード目以降は全部同じでしょうが、後者だと、も し1レコードだけのデータがある場合は、出力バイト数を戻り値からは得られな いです。
よろしくお願いいたします。 |
|
| タイトル | : Re: JVReadで、ファイルが切り替わるときの戻り値 |
| 記事No | : 7508 |
| 投稿日 | : 2025/01/16(Thu) 22:03 |
| 投稿者 | : サメの餌 |
| |
たかしさん、こんばんは。
公式から回答があるとは思いますが、これ、前者の筈ですね。3レコード目を 取得しつつ切り替わりって事ではなく3レコード目を取得後に次が切り替わりに なる。じゃないと自分のコードもそうなってまして、データが正確に取り込めて ない事になります。しかし、自分のは問題なく取り込めてますので前者の認識で 行ける筈です。
納得のいく説明にはなってないかもですが、公式の回答まで若干ラグあるかと 思い書かせて頂きました。公式以外は興味なければスルーしてください。 |
|
| タイトル | : Re^2: JVReadで、ファイルが切り替わるときの戻り値 |
| 記事No | : 7509 |
| 投稿日 | : 2025/01/17(Fri) 12:24 |
| 投稿者 | : たかし |
| |
サメの餌さん、ありがとうございます!
前者とのこと、承知しました! (後者だとすると、-1→0の流れと合わず、気持ち悪いなぁと思っていました)
でも確かに、行数が(外部の情報を見れば)わかるものがあるから、 最後まで取得できていることは試行錯誤すればわかりますね!
いちおう、公式の回答をいただいて、ここの掲示板の知見として残ればいいな と思います。 そしていつかのドキュメント更新時にでも、明確に書いていただければ。 |
|
| タイトル | : Re^3: JVReadで、ファイルが切り替わるときの戻り値 |
| 記事No | : 7512 |
| 投稿日 | : 2025/01/21(Tue) 18:33 |
| 投稿者 | : JRA-VANソフトサポート |
| |
JRA-VANソフトサポート 鷹森です。 DataLab.サービスをご利用頂きまして誠にありがとうございます。
> 例えば仮に、JVOpenをdataspec="RACE"で呼び出し、JVReadを繰り返 > し呼ぶと、"JG〜"の次に"H1〜"が出力引数で得られるとし > ます。その2種のそれぞれは1ファイルずつだけを得て、"JG〜"は3 > レコード、"H1〜"は2レコードとします。
> その場合、JVReadの戻り値は、下記のようになりますか? > 呼び出し1回目: 80(JG,フォーマット番号31のレコード長=80バイト) > 呼び出し2回目: 80 > 呼び出し3回目: 80(JGの3レコード目を取得) > 呼び出し4回目: -1 > 呼び出し5回目: 28955(H1,フォーマット番号5のレコード長=28955バイト) > 呼び出し6回目: 28955(H1の2レコード目を取得) > 呼び出し7回目: -1 > 呼び出し8回目: 0
> それとも、下記でしょうか? > 呼び出し1回目: 80(JG,フォーマット番号31のレコード長=80バイト) > 呼び出し2回目: 80 > 呼び出し3回目: -1(3レコード目を取得しつつ、切り替わりなので-1) > 呼び出し4回目: 28955(H1,フォーマット番号5のレコード長=28955バイト) > 呼び出し5回目: -1(2レコード目を取得しつつ、切り替わりなので-1) > 呼び出し6回目: 0
前者の認識で問題ございません。 また下記JV-Linkインターフェース仕様書に解説を記載しておりますので、ご参照ください。
■ソフトウェア開発キット(SDK)提供コーナー https://jra-van.jp/dlb/sdv/sdk.html ・JV-Linkインターフェース仕様書(Ver.4.9.0.1) 25ページ JVRead【解説】
以上、よろしくお願いいたします。 |
|
|
|
|
copyright ©2007 JRA SYSTEM SERVICE CO.,LTD. All Rights Reserved.
|
|
|