我有一个二进制文件,希望用Fortran进行读取。问题是这个文件并不是由Fortran编写的,所以它没有记录长度指示符。因此,通常的非格式化Fortran读取无法完成。
我想到可以通过以格式化方式逐字节(或者每4个字节)将文件读入字符数组中, 然后通过transfer函数或dreaded等效语句将字符内容转换成整数和浮点数。但这种方法行不通:我尝试每次读取4个字节,根据inquire语句的POS输出,读取跳过了大约6000个字节,字符数组中充满了垃圾数据。
所以这个方法不可行。我是否忘记了其中的某些细节?还是在Fortran中有基本不同且更好的方法来处理这个问题?(顺便提一下,我还尝试了将信息读入integer*1数组和byte数组中。尽管这些代码可以编译,但在读取声明时程序会崩溃。)
我想到可以通过以格式化方式逐字节(或者每4个字节)将文件读入字符数组中, 然后通过transfer函数或dreaded等效语句将字符内容转换成整数和浮点数。但这种方法行不通:我尝试每次读取4个字节,根据inquire语句的POS输出,读取跳过了大约6000个字节,字符数组中充满了垃圾数据。
所以这个方法不可行。我是否忘记了其中的某些细节?还是在Fortran中有基本不同且更好的方法来处理这个问题?(顺便提一下,我还尝试了将信息读入integer*1数组和byte数组中。尽管这些代码可以编译,但在读取声明时程序会崩溃。)