Fortran Coder

查看: 202|回复: 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本身的位置直接修改,请问怎么修改最后想用修改好的新文件来进行运算!

回复

使用道具 举报

97

帖子

2

主题

0

精华

大师

F 币
762 元
贡献
374 点

规矩勋章

发表于 2021-2-3 22:19:55 | 显示全部楼层
你需要先关闭所读取的文件,然后再打开同一文件进行写操作。

586

帖子

1

主题

0

精华

大宗师

F 币
2908 元
贡献
1836 点
发表于 2021-2-4 15:47:41 | 显示全部楼层
本帖最后由 li913 于 2021-2-4 15:48 编辑

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

3

帖子

2

主题

0

精华

新人

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

哦哦感谢感谢

170

帖子

14

主题

0

精华

大宗师

F 币
4286 元
贡献
944 点
发表于 2021-2-10 08:31:14 | 显示全部楼层
li913 发表于 2021-2-4 15:47
一般,这是不能直接修改的。需要按行读取每一行数据,修改某些数据,输出到新文件。
直接修改的方式也有, ...

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

586

帖子

1

主题

0

精华

大宗师

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

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

170

帖子

14

主题

0

精华

大宗师

F 币
4286 元
贡献
944 点
发表于 2021-2-11 11:58:56 | 显示全部楼层
li913 发表于 2021-2-10 10:21
当做二进制文件,可以修改指定的字节。

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

586

帖子

1

主题

0

精华

大宗师

F 币
2908 元
贡献
1836 点
发表于 5 天前 | 显示全部楼层
liudy02 发表于 2021-2-11 11:58
以定长记录的方式读写,可以做到只修改一个地方吗?
感觉上,这个也只是在内存里修改,写的时候还是全部 ...

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

本版积分规则

QQ|捐赠本站|Archiver|关于我们 About Us|群聊|Fcode

GMT+8, 2021-3-6 06:58

Powered by Discuz! X3.2

© 2001-2017 Comsenz Inc.

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