Fortran如何创建多个顺序文件
1、首先申明变量:
program main
implicit none
character(len=100):: fileDir,fileName,fileSeq,fileSuffix,myStr
integer*4:: fileNumer=28,i,j,counterLen = 3
integer::res
logical::FEXIST
其中各个变量分别是
fileDir:文件目录
fileName:文件名
fileSeq:文件序号
fileSuffix:文件后缀
myStr:数字输出格式
fileNumer:文件数量
counterLen:文件序号的长度,比如0001.txt长度就是4(3个0和1个1)
FEXIST:判断路径是否存在,如果不存在就创建
2、然后定义文件路径并查询是否存在,不存在就创建
fileDir = '.\03014\'
inquire(file = trim(fileDir),EXIST=FEXIST)
if(.not.FEXIST) then
call system('md '//trim(fileDir))
write(*,*) 'New folder created'
endif
3、定义文件名、后缀和文件序号书写格式
fileName = 'myFileName'
fileSuffix = '.dat'
write(myStr,'(I2)')counterLen
myStr = '(I'//trim(adjustl(myStr))//')'
4、循环创建文件
do i = 1,fileNumer,1
write(fileSeq,myStr)i
do j = 1,counterLen - len(trim(adjustl(fileSeq)))
fileSeq = '0'//adjustl(trim(fileSeq))
enddo
open(111,file = adjustl(trim(fileDir))//adjustl(trim(fileName))&
&//adjustl(trim(fileSeq))//adjustl(trim(fileSuffix)))
close(111)
enddo
5、最后可以观察效果,创建了12个文件,总的程序:
program main
implicit none
character(len=100):: fileDir,fileName,fileSeq,fileSuffix,myStr
integer*4:: fileNumer=12,i,j,counterLen = 3
!integer::res
logical::FEXIST
fileDir = '.\03014\'
inquire(file = trim(fileDir),EXIST=FEXIST)
if(.not.FEXIST) then
call system('md '//trim(fileDir))
write(*,*) 'New folder created'
endif
fileName = 'myFileName'
fileSuffix = '.dat'
write(myStr,'(I2)')counterLen
myStr = '(I'//trim(adjustl(myStr))//')'
do i = 1,fileNumer,1
write(fileSeq,myStr)i
do j = 1,counterLen - len(trim(adjustl(fileSeq)))
fileSeq = '0'//adjustl(trim(fileSeq))
enddo
open(111,file = adjustl(trim(fileDir))//adjustl(trim(fileName))&
&//adjustl(trim(fileSeq))//adjustl(trim(fileSuffix)))
close(111)
enddo
read(*,*)
end
