我有一个读取二进制数据文件的 IDL 例程。但是,这次,我收到“READU:遇到文件结尾。第 2 单元,文件:data.dat”。
而不是销毁二进制文件并重新创建它。这个问题可以克服吗?我可以使用什么 IDL 代码来读取二进制文件?二进制文件是由 C 函数创建的。
提前致谢。
最佳答案
根据问题,我假设二进制文件具有定义的结构。您可以使用 fstat() 和 eof() 来解决这个问题。例如:
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)
。
关于c - 使用 IDL 读取二进制文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18157632/