Fortran Coder

查看: 52|回复: 6

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

[复制链接]

5

帖子

1

主题

0

精华

新人

F 币
24 元
贡献
13 点
发表于 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查看软件看到的相应位置的数据是

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


回复

使用道具 举报

5

帖子

1

主题

0

精华

新人

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

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

文件字节位置的数据

文件字节位置的数据

5

帖子

1

主题

0

精华

新人

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

程序运行结果

程序运行结果

80

帖子

0

主题

0

精华

专家

F 币
571 元
贡献
247 点

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

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

评分

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

查看全部评分

天之道,损有余而补不足

5

帖子

1

主题

0

精华

新人

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

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

80

帖子

0

主题

0

精华

专家

F 币
571 元
贡献
247 点

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

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

5

帖子

1

主题

0

精华

新人

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

本版积分规则

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

GMT+8, 2021-12-3 02:03

Powered by Tencent X3.4

© 2013-2021 Tencent

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