zqyyyyy 发表于 2021-2-3 18:41:01

如何修改文件


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

风平老涡 发表于 2021-2-3 22:19:55

你需要先关闭所读取的文件,然后再打开同一文件进行写操作。

li913 发表于 2021-2-4 15:47:41

本帖最后由 li913 于 2021-2-4 15:48 编辑

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

zqyyyyy 发表于 2021-2-7 16:32:09

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

哦哦感谢感谢

liudy02 发表于 2021-2-10 08:31:14

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

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

li913 发表于 2021-2-10 10:21:29

liudy02 发表于 2021-2-10 08:31
本质上,就没有修改文件部分数据的办法吧
除非做成内存映射,那样的话就完全是把内存地址和硬盘地址一一 ...

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

liudy02 发表于 2021-2-11 11:58:56

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

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

li913 发表于 2021-3-1 10:03:49

liudy02 发表于 2021-2-11 11:58
以定长记录的方式读写,可以做到只修改一个地方吗?
感觉上,这个也只是在内存里修改,写的时候还是全部 ...

可以,这叫直接访问,默认是顺序访问。
页: [1]
查看完整版本: 如何修改文件