使用IDL读取二进制文件

时间:2013-08-10 00:56:23

标签: c idl-programming-language

我有一个读取二进制数据文件的IDL例程。但是,在这种情况下,我得到“READU:遇到文件结束。单元2,文件:data.dat”。

而不是破坏二进制文件并重新创建它。这个问题是否可以克服?我可以用什么IDL代码来读取二进制文件?二进制文件由C函数创建。

提前致谢。

1 个答案:

答案 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)