- 积分
- 38420
- 贡献
-
- 精华
- 在线时间
- 小时
- 注册时间
- 2011-6-20
- 最后登录
- 1970-1-1
成长值: 0
|
发表于 2012-10-27 16:48:51
|
显示全部楼层
楼上说的有道理,但是基于你的程序基础初步估计凭这些提示难以编写出来程序,另外不知道是你说的不对还是我没有理解到位,你需要的数据时31行以后的所有第二列数据还是只有第31行第二个数据??下面就第二种理解提供解决方案:
1,单个文件处理:你的文件前面三十行是不是不需要处理,如果这样的话可以用下面的程序尝试:
character*20,a
open(1,file="finename")
do i=1,30
read(1,*)a
enddo
read(1,*) xnull,x
close(1)
print*,x
end
整个程序就这么长,不需要添加任何别的东西,运行出来的结果就是屏幕输出,第30行第二个数
2.对于文件批处理,有很多解决方案,其中@mofangbaohttp://bbs.06climate.com/forum.php?mod=viewthread&tid=3079给出了很好的解决方案,简单总结有如下方法:
1)将所有文件的文件名称放到一个文本文件里面,fortran从中读取所需文件名称,方便以后操作。这一步仁者见仁智者见智,cmd的,fortran或者excel都能解决的;
2)直接在程序中生成文件名称,主要使用trim进行拼接,有些难度,给出一段程序代码:
character*8 name(365)
do i=1,9
write(name(i),"(i1)") i
enddo
do i=10,99
write(name(i),"(i2)") i
enddo
do i=10,99
write(name(i),"(i3)") i
enddo
do i=1,9
open(1,file="CODG00"//trim(name(i))//"0.95I")
print*,"CODG00"//trim(name(i))//"0.95I"
close(1)
enddo
end
差不多了吧,注意上面open的时候我只写到9,剩下的自己思考解决吧 |
|