Fortran Coder

查看: 5745|回复: 7
打印 上一主题 下一主题

[文件读写] 二进制文件读取

[复制链接]

13

帖子

4

主题

0

精华

入门

F 币
88 元
贡献
52 点
楼主
发表于 2022-1-13 17:23:07 | 显示全部楼层
本帖最后由 navoski 于 2022-1-13 18:05 编辑
fcode 发表于 2021-11-17 21:49
http://binary.w.fcode.cn/
此处了解 Fortran 经典的二进制文件读写方法。

想请教一下。
如果我要写一个二进制文件,但是每条rec的长度recl不一样。
我需要打开文件设置一个recl,写入数据,然后关闭;在打开文件设置一个recl,写入数据,然后关闭;这样操作是否正确?如果操作是正确的,我用下面的代码生成文件,打开后,第一个rec,也变为了57个字符的长度。是哪里出问题了呢?
[Fortran] 纯文本查看 复制代码
    open(unit=10, file='powerdensity.bin', access='direct', &
            action='write', form='unformatted', recl=26, status='replace')
    write(10,rec=1) 'CCCCCCCCCCCCCCCCCCCCCCCCCC'
    close(unit=10)
    
    open(unit=10, file='powerdensity.bin', access='direct', &
            action='write', form='unformatted', recl=57, status='old')
    write(10,rec=2) 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX')
    close(unit=10)


我用access=‘stream’,可以解决这个问题。但是还是想弄清楚access='direct'的操作问题出在哪。

您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

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

GMT+8, 2024-6-19 03:02

Powered by Tencent X3.4

© 2013-2024 Tencent

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