Fortran Coder

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

[文件读写] 如何修改文件

[复制链接]

3

帖子

2

主题

0

精华

新人

F 币
20 元
贡献
11 点
跳转到指定楼层
楼主
发表于 2021-2-3 18:41:01 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

想问问大家fortran如何修改一个文件的某几行,现在能够用read(21,*)a,b , c来读取文件,
我重新给abc赋值后,
然后write(21,*)a,b,c 发现这些数据直接写在整个文本的最后,
我想在abc本身的位置直接修改,请问怎么修改最后想用修改好的新文件来进行运算!

分享到:  微信微信
收藏收藏 点赞点赞 点踩点踩

213

帖子

2

主题

0

精华

宗师

F 币
2126 元
贡献
875 点

规矩勋章

沙发
发表于 2021-2-3 22:19:55 | 只看该作者
你需要先关闭所读取的文件,然后再打开同一文件进行写操作。

798

帖子

2

主题

0

精华

大宗师

F 币
3793 元
贡献
2268 点
板凳
发表于 2021-2-4 15:47:41 | 只看该作者
本帖最后由 li913 于 2021-2-4 15:48 编辑

一般,这是不能直接修改的。需要按行读取每一行数据,修改某些数据,输出到新文件。
直接修改的方式也有,麻烦,并且可能会出问题(新数据占位比原数据多)。

QQ截图20210204154632.png (50.68 KB, 下载次数: 380)

QQ截图20210204154632.png

3

帖子

2

主题

0

精华

新人

F 币
20 元
贡献
11 点
地板
 楼主| 发表于 2021-2-7 16:32:09 | 只看该作者
li913 发表于 2021-2-4 15:47
一般,这是不能直接修改的。需要按行读取每一行数据,修改某些数据,输出到新文件。
直接修改的方式也有, ...

哦哦感谢感谢

178

帖子

15

主题

0

精华

大宗师

F 币
4973 元
贡献
1152 点
5#
发表于 2021-2-10 08:31:14 | 只看该作者
li913 发表于 2021-2-4 15:47
一般,这是不能直接修改的。需要按行读取每一行数据,修改某些数据,输出到新文件。
直接修改的方式也有, ...

本质上,就没有修改文件部分数据的办法吧
除非做成内存映射,那样的话就完全是把内存地址和硬盘地址一一对应起来了
一般也没有这种需求

798

帖子

2

主题

0

精华

大宗师

F 币
3793 元
贡献
2268 点
6#
发表于 2021-2-10 10:21:29 | 只看该作者
liudy02 发表于 2021-2-10 08:31
本质上,就没有修改文件部分数据的办法吧
除非做成内存映射,那样的话就完全是把内存地址和硬盘地址一一 ...

当做二进制文件,可以修改指定的字节。

178

帖子

15

主题

0

精华

大宗师

F 币
4973 元
贡献
1152 点
7#
发表于 2021-2-11 11:58:56 | 只看该作者
li913 发表于 2021-2-10 10:21
当做二进制文件,可以修改指定的字节。

以定长记录的方式读写,可以做到只修改一个地方吗?
感觉上,这个也只是在内存里修改,写的时候还是全部重新写了吧
想在硬盘上只改文件的一个地方,除非做内存映射

798

帖子

2

主题

0

精华

大宗师

F 币
3793 元
贡献
2268 点
8#
发表于 2021-3-1 10:03:49 | 只看该作者
liudy02 发表于 2021-2-11 11:58
以定长记录的方式读写,可以做到只修改一个地方吗?
感觉上,这个也只是在内存里修改,写的时候还是全部 ...

可以,这叫直接访问,默认是顺序访问。
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

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

GMT+8, 2024-4-27 00:28

Powered by Tencent X3.4

© 2013-2024 Tencent

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