我有一个读取二进制数据文件的IDL例程。但是,在这种情况下,我得到“READU:遇到文件结束。单元2,文件:data.dat”。
而不是破坏二进制文件并重新创建它。这个问题是否可以克服?我可以用什么IDL代码来读取二进制文件?二进制文件由C函数创建。
提前致谢。
答案 0 :(得分:0)
基于这个问题,我假设二进制文件具有已定义的结构。您可以使用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)
。