Fortran如何创建多个顺序文件

2025-12-29 17:01:10

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

Fortran如何创建多个顺序文件

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢