fortran语言中 open(111,file='..\03013\'//outname1) ,请问如何要输出.dat或者.txt文件该如何修改?
fortran语言中open(111,file='..\03013\'//outname1),请问如何要输出.dat或者.txt文件该如何修改?...
fortran语言中 open(111,file='..\03013\'//outname1) ,请问如何要输出.dat或者.txt文件该如何修改?
展开
展开全部
你可以先预设几个字符串,第一个字符串是文件路径字符串,变量名为fileDir
第二个字符串是文件名字符串,变量设为fileName
第三个字符串是文件后缀,变量设为fileSuffix
程序如下面的例子
program main
implicit none
character(len=100):: fileDir,fileName,fileSuffix
fileDir = 'C:\Users\Administrator\Desktop\' !随便给的比如桌面
fileName = '03013'
fileSuffix = '.dat'!或者换成.txt
open(111,file = adjustl(trim(fileDir))//&
&adjustl(trim(fileName))//adjustl(trim(fileSuffix)))
read(*,*)
end
结果在桌面生成一个文档
追问
谢谢你的回复。不过outname1这个功能没有体现出来。
我的目的是希望获得..\03013\1.dat;..\03013\2.dat;..\03013\3.dat一系列的文件,如果单独生产一个文件,我直接可以 open(111,file='..\03013\.dat') 不是更好?
追答
此言差矣,我所讲的正符合你的要求。
但是你追加问题的时候临时又增加文件名包含变量,其实简单得很,无非是fileName后面再加一项fileNumber而已!
program main
implicit none
character(len=100):: fileDir,fileName,fileSeq,fileSuffix,myStr
integer*4:: fileNumer=28,i,j,counterLen = 3
fileDir = 'C:\Users\Administrator\Desktop\03013\'
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
效果图
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询