声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 4389|回复: 7

[Fortran] 如何循环读取多个文本文件内容

[复制链接]
发表于 2007-5-28 15:32 | 显示全部楼层 |阅读模式
50体能
fortran中如何实现循环读取同一路径下的多个文本文件的内容吗?

分为两种情况
1. 文件名有规律
2. 文件名无规律

回复
分享到:

使用道具 举报

发表于 2007-5-28 16:49 | 显示全部楼层

供参考

设要生成4000个文件,文件名为AA1-AA4000,如何写循环生成文件,而不用写4000次write命令呢?

用内部文件:
character(len=80) :: filename,form
integer :: i

do i=1,4000
   select case (i)
   case (1:9)
      write(form,'(i1)') i
   case (10:99)
      write(form,'(i2)') i
   case (100:999)
      write(form,'(i3)') i
   case (1000:9999)
      write(form,'(i4)') i
   end select
   write(filename,*) "AA",trim(form),".TXT"
   open(10,file=filename)
   write(10,*) i
   close(10)
end do   

stop
end

对于没有规律的文件,好像有软件可以修改文件名。最好该成有规律的,这样比较方便。



http://www.programfan.com/club/showbbs.asp?id=102851

评分

1

查看全部评分

回复

使用道具 举报

 楼主| 发表于 2007-5-29 09:30 | 显示全部楼层
对于没有规律的文件,好像有软件可以修改文件名。最好该成有规律的,这样比较方便。


如果不具备修改文件名的条件呢?呵呵
回复

使用道具 举报

发表于 2007-5-29 13:08 | 显示全部楼层

回复 #3 风花雪月 的帖子

我提供一个自我认为可行的思路,就是在fortran中调用系统dos命令dir(或者写成一个bat批处理文件),把该文件夹下的文件名写到一个文本文件中,然后从文本文件中依次读取文件名,然后从文件中读取相关数据。
写出代码比较耗时,个人没时间了,只能提供想法。
回复

使用道具 举报

 楼主| 发表于 2007-5-30 16:38 | 显示全部楼层
dos有命令能够将dir返回的数据写入文件?
回复

使用道具 举报

发表于 2007-5-30 19:26 | 显示全部楼层

回复 #5 风花雪月 的帖子

dir >a.txt 可以写到a.txt里面去,不过看了一下,txt文件里有头有尾,不只是文件名,哈,不好操作了。 :@(
下面是a.txt里的内容示例:


  1. 驱动器 C 中的卷没有标签。
  2. 卷的序列号是 487C-371C

  3. C:\Documents and Settings\hitwdh 的目录

  4. [.]                     [..]                    aa.txt
  5. config.pro              [Contacts]              [EurekaLog]
  6. [Favorites]             file.err                file.log
  7. gsview32.ini            makebst.log             [My Documents]
  8. PUTTY.RND               SciTE.recent            SciTE.ses
  9. [tempfiles]             tryhitwdh.eps           trymakebst.bst
  10. trymakebst.dbj          [WINDOWS]               writer2latex.xml
  11. _BLOCK.WB4              _PersonalityVert1.WB4   _PersonalityVert2.WB4
  12. [「开始」菜单]          [桌面]                  
  13.               16 个文件        565,394 字节
  14.               10 个目录  2,703,597,568 可用字节
复制代码
回复

使用道具 举报

 楼主| 发表于 2007-5-31 09:14 | 显示全部楼层
原帖由 心灯 于 2007-5-30 19:26 发表
dir >a.txt 可以写到a.txt里面去,不过看了一下,txt文件里有头有尾,不只是文件名,哈,不好操作了。 :@(
下面是a.txt里的内容示例:


驱动器 C 中的卷没有标签。
卷的序列号是 487C-371C

C:\Doc ...


对这个文件应该还是能够操作的,不过有点过于复杂
回复

使用道具 举报

发表于 2007-5-31 20:56 | 显示全部楼层

回复 #7 风花雪月 的帖子

不知道如何进行操作了...

不知道别的网友有没有什么好的建议或者思路?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-5-28 03:38 , Processed in 0.055476 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表