Fortran Coder

标题: 读二进制文件SGY显示结果不对 [打印本页]

作者: zy_cd    时间: 2021-11-24 12:36
标题: 读二进制文件SGY显示结果不对
自己编了一段读取sgy二进制文件的小程序
[Fortran] 纯文本查看 复制代码
      PROGRAM SEISMIC
    IMPLICIT NONE
    INTEGER I
    INTEGER*4::SAMPLE_RATE
      CHARACTER*80 INPUTFILENAME
    CHARACTER*80 OUTPUTFILENAME
      INPUTFILENAME='Z.SGY'
    OPEN(9,FILE=INPUTFILENAME,ACCESS='DIRECT',FORM='BINARY',RECL=4)
    DO I=800,805
       READ(9,REC=I)SAMPLE_RATE
       WRITE(*,*)i,SAMPLE_RATE
    END DO
    CLOSE(9)
    END PROGRAM

输出结果

但是用sgy查看软件看到的相应位置的数据是

麻烦大家给看看为什么会出现这种问题?多谢了



作者: zy_cd    时间: 2021-11-24 12:38
本帖最后由 zy_cd 于 2021-11-24 12:40 编辑

C:\Users\Administrator\Desktop\QQ截图20211124123610.jpg

QQ截图20211124123610.jpg (10.31 KB, 下载次数: 147)

文件字节位置的数据

文件字节位置的数据

作者: zy_cd    时间: 2021-11-24 12:42
C:\Users\Administrator\Desktop\2.jpg

2.jpg (6.52 KB, 下载次数: 113)

程序运行结果

程序运行结果

作者: 胡文刚    时间: 2021-11-24 15:07
你的数据是个大端的,你需要转换成小端。(你的PC是使用小端的)
作者: zy_cd    时间: 2021-11-24 15:08
胡文刚 发表于 2021-11-24 15:07
你的数据是个大端的,你需要转换成小端。(你的PC是使用小端的)

新手不太懂,能详细说说怎么转换吗?
作者: 胡文刚    时间: 2021-11-24 18:38
OPEN(9,FILE=INPUTFILENAME,ACCESS='DIRECT',CONVERT="BIG_ENDIAN",FORM='BINARY',RECL=4)
作者: zy_cd    时间: 2021-11-25 09:19
已解决,多谢




欢迎光临 Fortran Coder (http://bbs.fcode.cn/) Powered by Discuz! X3.2