每次执行打开操作时,我都需要打开一个我不知道它是否存在的文件。如果它存在,我想打开它并将其中的信息存储到一个数组中,进行一些计算,清理打开的文件并将新信息写入其中。如果它不存在,我想保持开放状态以便向其写入信息。
我必须使用fortran 77。
我的代码是:
OPEN(7, FILE = "C:/Abaqus_JOBS/mELF.txt",
1 action = "READ", status = "UNKNOWN")
我的问题关注status = "UNKNOWN"
,如果文件存在,我需要清理它(删除所有数据)。怎么办呢?
由于
答案 0 :(得分: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'
将status='replace'
如果它不存在,则创建一个新文件。
对于FORTRAN 77,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)
语句可以是:
{{1}}