24小时热门版块排行榜    

查看: 6278  |  回复: 7

yingmo01

木虫 (小有名气)

[求助] Fortran如何建立文件夹并在文件夹中写入文件?已有1人参与

我想在Fortran程序中实现以下几个步骤

(1)建立  [文件夹1], [文件夹2],[文件夹3]
(2)在  [文件夹1], [文件夹2],[文件夹3]中分别写入2000 个文件,这些文件的格式相同,只是存储的名称不同,比如fort.22到fort.2022
         


         这样既便于存储,又可以防止文件混淆。



         跪求大神指点!!!!
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

Noch

金虫 (著名写手)

壮士

出钱悬赏吧!重赏之下必有勇夫

发自小木虫IOS客户端
等待就是浪费青春!!!
2楼2016-12-23 08:46:22
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

1014511134

专家顾问 (正式写手)

【答案】应助回帖

感谢参与,应助指数 +1
看下书,很容易就解决了。。。。
3楼2016-12-23 09:57:11
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

7152075

铁杆木虫 (著名写手)

解决问题的方法比遇到的问题多

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★
感谢参与,应助指数 +1
yingmo01: 金币+30, ★★★★★最佳答案 2016-12-24 09:07:26
program creat_doc
    use ifport
    implicit none
    integer i,j,k
    character( len=56 ) temp,name,temp1
    integer istatus1,istatus2,istatus3,istatus4,istatus5
    name='storage'
    istatus1=system( "Md "//trim( name ) ) !建立文件夹
    istatus2=CHDIR( trim( name ) ) !定位文件夹
    k=0
    do i=1,3 !//文件夹有多少个,可自行修改(这里的文件夹有3个)
        write( temp,* ) i
        temp=adjustl( temp ) !//左对齐,因为默认i是右对齐的
        istatus3=system( "Md "//trim( temp ) ) !在此路径上再建一层文件夹
        istatus4=CHDIR(trim(temp)) !//定位到新一层的文件夹
        do j=1+k,10+k !fort文件有多少个(这里是1个文件夹里存10个,名称分别叫fort1,fort2……fort10)
            write( temp1,* ) j
            open( 11+j,file='fort'//adjustl ( trim ( temp1 ) ) ) !//写入你想要的文件名
            close( 11+j )
        end do
        k=k+10
        istatus5=CHDIR( ".." ) !//退出本层目录
    end do
    end program creat_doc
相关说明已经写在注释中了。我是在IVF+VS编译器上,windows7系统上运行是没问题的,不知道LZ是什么操作系统,用的是什么编译器?希望下次说明一下。
Chemistry
4楼2016-12-23 20:11:40
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

yingmo01

木虫 (小有名气)

引用回帖:
4楼: Originally posted by 7152075 at 2016-12-23 20:11:40
program creat_doc
    use ifport
    implicit none
    integer i,j,k
    character( len=56 ) temp,name,temp1
    integer istatus1,istatus2,istatus3,istatus4,istatus5
    name='storage'
    ist ...

我用的visual studio。这段程序已经能用,只是还想问问
(1)system与CHDIR表示什么呢?
(2)建立文件夹默认的路径是在哪呢?
(3)"Md"表示什么?
(4)use ifort 木块包含哪些东西能不能详细介绍下,或者能够推荐一些参考资料
(5)write( temp,* ) i表示把i赋给temp吗?
(6)屏幕上输出了子目录或文件1已经存在,但是在屏幕上并没有体现,这是怎么回事?还请指点!
5楼2016-12-23 22:42:05
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

问天阁

木虫 (正式写手)

6楼2016-12-24 07:00:20
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
7楼2016-12-24 07:23:41
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

7152075

铁杆木虫 (著名写手)

解决问题的方法比遇到的问题多

【答案】应助回帖

引用回帖:
5楼: Originally posted by yingmo01 at 2016-12-23 22:42:05
我用的visual studio。这段程序已经能用,只是还想问问
(1)system与CHDIR表示什么呢?
(2)建立文件夹默认的路径是在哪呢?
(3)"Md"表示什么?
(4)use ifort 木块包含哪些东西能不能详细介绍 ...

(1)system代表的是系统内部的命令,这里指的是windows系统在DOS下的命令,CHDIR就是其中的一个命令,比如cd,dir,md这些都是windows系统本身自带的命令,在Fortran中使用system目的就是为了调用这些命令。
(2)默认是在你程序所在的位置建立,如果你想改动路径可以人为添加。
(3)Md在程序注释中已经写了,就是代表建立文件夹的意思。
(4)use ifort是IVF+VS中特有的,目的就是为了调用system模块,相关的资料,你可以看看vs中自带的帮助。
(5)write(temp,*) i,是内部文件(internal file)的写法,具体可参考Fortran的相关书籍都有。你说的没错,就是把i赋值给temp,将i由整型变为字符型,要不然你想做fort1,for2……这些东西的时候,计算机如何知道后面的1,2,3?
(6)屏幕上就是告诉你文件夹已经存在了,其它是不会说的,你看一看你storage文件夹下,那几个东西有没有就行了。
Chemistry
8楼2016-12-24 09:06:05
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 yingmo01 的主题更新
信息提示
请填处理意见