fcc 发表于 2023-6-3 11:45:48

文件修改

在不新建文件的情况下,如何直接删除文件中指定位置处的内容?
例如:
旧文件a.txt,其内容为:
123
456
789

删除后,a.txt的结果:
123
789


vvt 发表于 2023-6-3 11:58:49

本帖最后由 vvt 于 2023-6-3 12:05 编辑

全部读到内存,然后重新写一遍。
program fcode_cn
implicit none
integer :: a(3)
Open(11,File="a.txt")
Read(11,*) a
Rewind(11)
Write(11,"(g0)") a()
Close(11)
end program fcode_cn不仅 Fortran 只能这样,其他编程语言也是如此,包括但不限于 C/C++, PHP, golang, Delphi, VB(我是说原生的文件读写,而非封装后的库)

不仅编程语言,绝大部分成熟的文本编辑器软件,包括但不限于 windows记事本,notepad++,UltraEdit,gedit,vi,emacs,sublime Text,都是这样。

PS:倡导大家摒弃 notepad++,换成其他文本编辑器

fcc 发表于 2023-6-3 12:30:17

vvt 发表于 2023-6-3 11:58
全部读到内存,然后重新写一遍。
program fcode_cn
implicit none


那对于文件末尾数据删除的也只能如此吗?

vvt 发表于 2023-6-3 12:32:58

文件末尾删除数据不用这么麻烦。

program fcode_cn
implicit none
integer :: a(2)
Open(11,File="a.txt")
Read(11,*) a
endfile(11)
Close(11)
end program fcode_cn

fcc 发表于 2023-6-3 20:32:14

vvt 发表于 2023-6-3 12:32
文件末尾删除数据不用这么麻烦。

program fcode_cn


非常感谢:-handshake
页: [1]
查看完整版本: 文件修改