加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

fortran如何读入文本文件中的某行的指定部分

(2010-01-05 08:24:57)
标签:

杂谈

分类: 有限元

Q:

fortran如何读入文本文件中的某行的指定部分

例如这样一个文件:
1 2 3 4 5 u 1
2 3 6 5 x 55 2
2 3 6 9 5 4  5
如果只想读入其中第三列,也就是第三个空格(backspace)处的数字,如何实现呢? 谢谢!!!

A:

说明:我不知道你的文件里面的具体格式,所以只能用格式语句100来表示了,具体自己弄吧。我下面这个程序是把文件里面的所有数据都读取出来,然后用了一个do循环,将你要的第三列数据赋值给了b数组,不知道是不是你想要的。
[code]
implicit real*8 (a-h,o-z)
dimension a(3,7),b(3,1)

open (1,file='shuju.dat',form='formatted',status='unknown')
do i=1,3
   read (1,100) (a(i,j),j=1,7)
end do
close (1)

do i=1,3
   b(i,1)=a(i,3)
end do

end[/code]

 

你看这样行不行,下面这段程序也可以实现我上面编制的程序的功能的,呵呵。其实说白了,编制程序关键在于自己的想法以及尝试如何编制程序来实现。至于你说的第三个位置到第七个位置的数据,只要将格式行100中的format语句改变一下就可以实现了,不信你就试试。
[code]
implicit real*8 (a-h,o-z)
dimension a(3,5),b(3,2)

open (1,file='shuju.dat',form='formatted',status='unknown')
do i=1,3
   read (1,100) (b(i,j),j=1,2),(a(i,j),j=1,5),
end do
close (1)

end[/code]

Q

用二维数组定义啊,比如你的文件是3行2列,则定义成A(3,2)
读的时候就是
do 10 i=1,3
10 read(设备号,格式) (A(i,j),j=1,2)
输出就改成write就是了

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有