删除文件数据

jpc*_*dre 5 fortran file fortran77

我需要打开一个文件,每次执行打开操作时我都不知道它是否存在。如果它存在,我想打开它并将其中的信息存储到一个数组中,进行一些计算,清理打开的文件并将新信息写入其中。如果它不存在,我想将其保持打开状态以向其写入信息。

我必须使用 fortran 77。

我的代码是:

 OPEN(7, FILE = "C:/Abaqus_JOBS/mELF.txt", 
1 action = "READ", status = "UNKNOWN")
Run Code Online (Sandbox Code Playgroud)

我的问题是status = "UNKNOWN",如果该文件存在,我需要清理它(删除所有数据)。怎么能做到这一点呢?

谢谢

Ale*_*ogt 5

您可以使用以下inquire语句来执行此操作:

logical :: file_exists
! ...

inquire(file='filename.txt',exist=file_exists)
if ( file_exists ) then
  ! Do stuff
else
  ! Do other stuff
endif
Run Code Online (Sandbox Code Playgroud)

或者,由于您无论如何都要擦除文件,只需使用 ;-) 打开它即可。和status='replace'之间的区别是,如果文件不存在,将创建一个新文件。'unknown''replace''replace'

对于 FORTRAN 77,status='replace'不存在。那么,open声明可以这样写:

open(1234, file='filename.txt', status='unknown', iostat=ierr)
if ( ierr .eq. 0) then
c    file opened successfully, delete 
  close(1234, status='delete')
endif

c Open a new file
open(1234, file='filename.txt', status='new', iostat=ierr)
Run Code Online (Sandbox Code Playgroud)