Fortran Coder

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

作者: fcc    时间: 2023-6-3 11:45
标题: 文件修改
在不新建文件的情况下,如何直接删除文件中指定位置处的内容?
例如:
旧文件a.txt,其内容为:
123
456
789

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



作者: vvt    时间: 2023-6-3 11:58
本帖最后由 vvt 于 2023-6-3 12:05 编辑

全部读到内存,然后重新写一遍。
[Fortran] 纯文本查看 复制代码
program fcode_cn
  implicit none
  integer :: a(3)
  Open(11,File="a.txt")
  Read(11,*) a
  Rewind(11)
  Write(11,"(g0)") a([1,3])
  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
vvt 发表于 2023-6-3 11:58
全部读到内存,然后重新写一遍。
[mw_shl_code=fortran,true]program fcode_cn
  implicit none

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

作者: vvt    时间: 2023-6-3 12:32
文件末尾删除数据不用这么麻烦。

[Fortran] 纯文本查看 复制代码
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
vvt 发表于 2023-6-3 12:32
文件末尾删除数据不用这么麻烦。

[mw_shl_code=fortran,true]program fcode_cn

非常感谢





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