Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
File 删除文件的数据_File_Fortran_Fortran77 - Fatal编程技术网

File 删除文件的数据

File 删除文件的数据,file,fortran,fortran77,File,Fortran,Fortran77,每次执行打开操作时,我都需要打开一个不知道是否存在的文件。如果它存在,我想打开它并将其中的信息存储到一个数组中,进行一些计算,清理打开的文件并将新信息写入其中。如果它不存在,我想让它打开,以便向它写入信息 我必须使用fortran 77 我的代码是: OPEN(7, FILE = "C:/Abaqus_JOBS/mELF.txt", 1 action = "READ", status = "UNKNOWN") 我的问题与status=“UNKNOWN”有关,如果文件存在,我需要清理它(删除

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

我必须使用fortran 77

我的代码是:

 OPEN(7, FILE = "C:/Abaqus_JOBS/mELF.txt", 
1 action = "READ", status = "UNKNOWN")
我的问题与
status=“UNKNOWN”
有关,如果文件存在,我需要清理它(删除所有数据)。你怎么能做到这一点


谢谢

您可以使用
查询
语句:

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)

谢谢我认为“状态=未知”也会起作用。我的问题是如何删除文件中的所有数据,以便向其中写入新信息?感谢您,阿加尼认为fortran 77中没有可用的
status='replace'
。我错了吗?同样感谢,当执行
open
语句时,
status=replace
将删除(文件内容)。啊,我明白了。。那么,您应该使用
'iostat=ierr'
。如果无法打开文件,则
ierr
将为非零!