0

バイナリ データ ファイルを読み取る IDL ルーチンがあります。ただし、この場合、「READU: End of file occured. Unit 2, File: data.dat」が表示されます。

バイナリ ファイルを破棄して再作成する代わりに。この問題は克服可能ですか?バイナリ ファイルを読み取れるようにするには、どの IDL コードを使用できますか? バイナリ ファイルは、C 関数によって作成されました。

前もって感謝します。

4

1 に答える 1

0

質問に基づいて、バイナリ ファイルには定義済みの構造があると想定しています。これを回避するには、おそらくfstat()andeof()を使用できます。例えば:

openr, lun, 'file.bin', /get_lun
fs = fstat(lun)

len = fs.size / n_bytes_in_data_structure
for i = 0L, len - 1 do begin
    readu, lun, var
    ...

データ構造のサイズがわからない場合、または読み取り前に十分なバイト数があることを確認したい場合は、fs.cur_ptr(もちろん を呼び出した後にfstat()) またはを使用できますeof(lun)

于 2013-08-12T00:48:15.693 に答える