我正在强制介绍 idl 试图调试一些旧代码。
我有一个带有 ascii 标头的二进制图像文件(如果感兴趣的话,它是火星的 THEMIS IR BTR 图像)。代码使用 OPENR 作为单元 1 打开文件,然后使用 ASSOC(1,BYTARR(256)) 读取文件的前 256 个字节。从中返回的是 256 个 ascii 字符 dex 值,但它们大多是与字母数字字符不对应的高或低数字,并且与我知道文件中的标题无关。
可能有助于诊断的一件事:原始文件是该文件的 g 压缩版本。如果我尝试直接打开它(例如使用 less),它允许我阅读标题。但是,如果我先解压缩它(gzip -c filename.IMG.gz > filename.IMG)然后尝试再次读取它,我会得到二进制 gobbledegook。(less 在打开之前给我一个警告:“filename.IMG 可能是一个二进制文件。看到了吗?”)。
有什么建议么?
这是 IDL 代码:
CLOSE,1
OPEN,1,FILENAME
A = ASSOC(1,BYTARR(256))
B = A[0]
print,'B - ',B
H = STRING(B)
print,'H - ',H
这就是它给我的:
B - 31 139 8 8 7 17 238 79 0 3 ... (and on for 256 characters)
H - [Some weird symbol]
我已经在一个纯 ascii 测试文件上进行了尝试,它按预期工作。