4

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

我必须使用 fortran 77。

我的代码是:

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

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

谢谢

4

1 回答 1

4

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

logical :: file_exists
! ...

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

或者,既然您无论如何都要擦除文件,只需使用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)
于 2013-10-21T16:09:22.173 回答