fortran语言中 open(111,file='..\03013\'//outname1) ,请问如何要输出.dat或者.txt文件该如何修改?

fortran语言中open(111,file='..\03013\'//outname1),请问如何要输出.dat或者.txt文件该如何修改?... fortran语言中 open(111,file='..\03013\'//outname1) ,请问如何要输出.dat或者.txt文件该如何修改? 展开
 我来答
PeriShare
2018-10-22 · 分享PD理论最新研究成果和进展
PeriShare
采纳数:2408 获赞数:36827

向TA提问 私信TA
展开全部

你可以先预设几个字符串,第一个字符串是文件路径字符串,变量名为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

效果图

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式