Fortran Coder

查看: 3314|回复: 6
打印 上一主题 下一主题

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

[复制链接]

13

帖子

3

主题

0

精华

入门

F 币
55 元
贡献
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 币
55 元
贡献
31 点
沙发
 楼主| 发表于 2021-11-24 12:38:54 | 只看该作者
本帖最后由 zy_cd 于 2021-11-24 12:40 编辑

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

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

文件字节位置的数据

文件字节位置的数据

13

帖子

3

主题

0

精华

入门

F 币
55 元
贡献
31 点
板凳
 楼主| 发表于 2021-11-24 12:42:29 | 只看该作者
C:\Users\Administrator\Desktop\2.jpg

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

程序运行结果

程序运行结果

98

帖子

0

主题

0

精华

大师

F 币
658 元
贡献
293 点

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

地板
发表于 2021-11-24 15:07:03 | 只看该作者
你的数据是个大端的,你需要转换成小端。(你的PC是使用小端的)

评分

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

查看全部评分

天之道,损有余而补不足

13

帖子

3

主题

0

精华

入门

F 币
55 元
贡献
31 点
5#
 楼主| 发表于 2021-11-24 15:08:32 | 只看该作者
胡文刚 发表于 2021-11-24 15:07
你的数据是个大端的,你需要转换成小端。(你的PC是使用小端的)

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

98

帖子

0

主题

0

精华

大师

F 币
658 元
贡献
293 点

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

6#
发表于 2021-11-24 18:38:04 | 只看该作者
OPEN(9,FILE=INPUTFILENAME,ACCESS='DIRECT',CONVERT="BIG_ENDIAN",FORM='BINARY',RECL=4)
天之道,损有余而补不足

13

帖子

3

主题

0

精华

入门

F 币
55 元
贡献
31 点
7#
 楼主| 发表于 2021-11-25 09:19:44 | 只看该作者
已解决,多谢
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

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

GMT+8, 2024-4-25 18:05

Powered by Tencent X3.4

© 2013-2024 Tencent

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