我正在對idl進行強制介紹,試圖調試一些舊代碼。IDL:讀取二進制文件的ascii頭文件
我有一個二進制映像文件,它有一個ascii頭(這是一個THEMIS火星的BTR圖像,如果感興趣的話)。代碼使用OPENR打開文件爲單元1,然後使用ASSOC(1,BYTARR(256))讀取它的前256個字節。從那裏返回的是256個ASCII字符的右值,但它們大多數是高或低的數字,不對應於字母數字字符,並且與我知道的頭文件無關。
有一件事可能有助於診斷:原始文件是g-zip版本的文件。如果我嘗試直接打開它(例如使用less),它允許我讀取標題。但是,如果我先解壓縮(gzip -c filename.IMG.gz> filename.IMG),然後嘗試再次閱讀它,我會得到二進制gobbledegook。 (在打開之前少給我一個警告:「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測試文件,並將其按預期工作。
這很好,問題在於我沒有正確解壓縮它,儘管代碼應該自己管理它。謝謝。 – EddyTheB