我有一個我想用Fortran閱讀的二進制文件。問題在於它不是由Fortran編寫的,所以它沒有記錄長度指示器。所以通常無格式的Fortran讀取將不起作用。Fortran可以直接從二進制文件中讀取字節嗎?
我有一個想法,我可以偷偷摸摸地讀取文件作爲格式文件,逐字節(或4字節乘4字節,真的)到字符數組,然後將字符的內容轉換爲整數和浮點數通過傳遞函數或可怕的等價語句。但是這不起作用:我嘗試一次讀取4個字節,根據inquire
語句的POS輸出,讀取跳過像6000個字節左右,並且字符數組被加載垃圾。
所以這是一個不行。這個方法中有一些細節我忘記了嗎?或者在Fortran中有這樣一個完全不同且更好的方法嗎? (順便說一句,我也嘗試讀入integer*1
數組和字節數組,儘管這些代碼會被編譯,但在讀取語句時,代碼崩潰了。)
太棒了!謝謝!而且我認爲我只是想用FORTRAN 90取得好成績。現在要學習更多!呃,好吧。非常感謝。 – 2012-07-19 23:02:37
如果沒有「流」訪問,Fortran讀取將某些數據解釋爲記錄長度信息。它們都跳過了您想要讀取的數據,並導致記錄長度錯誤。此外,該文件在Fortran中並沒有真正的記錄。 – 2012-07-20 01:43:39
@ M.S.B .:如果如OP所示,他首先嚐試格式化閱讀,我的猜測是它向前掃描,直到它遇到換行符。 – janneb 2012-07-20 04:45:23