Fortran Coder

标题: 如何修改文件 [打印本页]

作者: zqyyyyy    时间: 2021-2-3 18:41
标题: 如何修改文件

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


作者: 风平老涡    时间: 2021-2-3 22:19
你需要先关闭所读取的文件,然后再打开同一文件进行写操作。
作者: li913    时间: 2021-2-4 15:47
本帖最后由 li913 于 2021-2-4 15:48 编辑

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

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

QQ截图20210204154632.png

作者: zqyyyyy    时间: 2021-2-7 16:32
li913 发表于 2021-2-4 15:47
一般,这是不能直接修改的。需要按行读取每一行数据,修改某些数据,输出到新文件。
直接修改的方式也有, ...

哦哦感谢感谢
作者: liudy02    时间: 2021-2-10 08:31
li913 发表于 2021-2-4 15:47
一般,这是不能直接修改的。需要按行读取每一行数据,修改某些数据,输出到新文件。
直接修改的方式也有, ...

本质上,就没有修改文件部分数据的办法吧
除非做成内存映射,那样的话就完全是把内存地址和硬盘地址一一对应起来了
一般也没有这种需求
作者: li913    时间: 2021-2-10 10:21
liudy02 发表于 2021-2-10 08:31
本质上,就没有修改文件部分数据的办法吧
除非做成内存映射,那样的话就完全是把内存地址和硬盘地址一一 ...

当做二进制文件,可以修改指定的字节。
作者: liudy02    时间: 2021-2-11 11:58
li913 发表于 2021-2-10 10:21
当做二进制文件,可以修改指定的字节。

以定长记录的方式读写,可以做到只修改一个地方吗?
感觉上,这个也只是在内存里修改,写的时候还是全部重新写了吧
想在硬盘上只改文件的一个地方,除非做内存映射
作者: li913    时间: 2021-3-1 10:03
liudy02 发表于 2021-2-11 11:58
以定长记录的方式读写,可以做到只修改一个地方吗?
感觉上,这个也只是在内存里修改,写的时候还是全部 ...

可以,这叫直接访问,默认是顺序访问。




欢迎光临 Fortran Coder (http://bbs.fcode.cn/) Powered by Discuz! X3.2