Fortran Coder

查看: 2481|回复: 6

[文件读写] 读二进制文件SGY显示结果不对

[复制链接]

13

帖子

3

主题

0

精华

入门

F 币
54 元
贡献
31 点
发表于 2021-11-24 12:36:47 | 显示全部楼层 |阅读模式
自己编了一段读取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查看软件看到的相应位置的数据是

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


13

帖子

3

主题

0

精华

入门

F 币
54 元
贡献
31 点
 楼主| 发表于 2021-11-24 12:38:54 | 显示全部楼层
本帖最后由 zy_cd 于 2021-11-24 12:40 编辑

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

文件字节位置的数据

文件字节位置的数据

13

帖子

3

主题

0

精华

入门

F 币
54 元
贡献
31 点
 楼主| 发表于 2021-11-24 12:42:29 | 显示全部楼层
C:\Users\Administrator\Desktop\2.jpg

程序运行结果

程序运行结果

93

帖子

0

主题

0

精华

大师

F 币
641 元
贡献
283 点

规矩勋章元老勋章新人勋章

发表于 2021-11-24 15:07:03 | 显示全部楼层
你的数据是个大端的,你需要转换成小端。(你的PC是使用小端的)

评分

参与人数 1F 币 +3 贡献 +1 收起 理由
fcode + 3 + 1 很给力!

查看全部评分

天之道,损有余而补不足

13

帖子

3

主题

0

精华

入门

F 币
54 元
贡献
31 点
 楼主| 发表于 2021-11-24 15:08:32 | 显示全部楼层
胡文刚 发表于 2021-11-24 15:07
你的数据是个大端的,你需要转换成小端。(你的PC是使用小端的)

新手不太懂,能详细说说怎么转换吗?

93

帖子

0

主题

0

精华

大师

F 币
641 元
贡献
283 点

规矩勋章元老勋章新人勋章

发表于 2021-11-24 18:38:04 | 显示全部楼层
OPEN(9,FILE=INPUTFILENAME,ACCESS='DIRECT',CONVERT="BIG_ENDIAN",FORM='BINARY',RECL=4)
天之道,损有余而补不足

13

帖子

3

主题

0

精华

入门

F 币
54 元
贡献
31 点
 楼主| 发表于 2021-11-25 09:19:44 | 显示全部楼层
已解决,多谢
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

捐赠本站|Archiver|关于我们 About Us|小黑屋|Fcode ( 京ICP备18005632-2号 )

GMT+8, 2023-12-7 23:44

Powered by Tencent X3.4

© 2013-2023 Tencent

快速回复 返回顶部 返回列表