爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
12
返回列表 发新帖
楼主: jeydragon

[求助] fortran对一个未知行数未知列数文件的读取

[复制链接]

新浪微博达人勋

 楼主| 发表于 2012-10-12 11:10:34 | 显示全部楼层
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2012-10-12 11:11:12 | 显示全部楼层
Aires 发表于 2012-10-11 12:23
有空格直接就能读了吧?

列是可以的,行不知道怎么做,你试试附件
密码修改失败请联系微信:mofangbao

新浪微博达人勋

0
早起挑战累计收入
发表于 2012-10-12 11:36:07 | 显示全部楼层
因为你想读取到数组里面,所以申请数组大小之前需要先知道行数和列数,因为二维数组是矩形的。
行数可以很简单的先把文件读取一遍就出来了,列数稍微麻烦一点,不知道你每一行的列是否固定,如果不固定,那非常麻烦,因为必须找到列数最多的一行,这样才能定义数组的大小。
你可以参考这个帖子:
http://bbs.06climate.com/forum.php?mod=viewthread&tid=996
这个帖子里的程序实际上是读取了第一行的列数,你要做的就是把每一行的列数读取出来,列的长度保存在一个数组中。
现在可以重新打开这个文件,按照行来读取,比如:
do i=1,line
  m=linelen(i)
  read(1,*)var(i,1:m)
enddo
其中m就是这一行的列数。
这样结束后,数组中列数不够的都是一个默认值,当然你可以读取之前先批量赋值为一个固定的值,然后把这个值作为缺测值。
思路就是这样,具体你自己实现。
其中
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2012-10-12 15:10:44 | 显示全部楼层
mofangbao 发表于 2012-10-12 11:36
因为你想读取到数组里面,所以申请数组大小之前需要先知道行数和列数,因为二维数组是矩形的。
行数可以很 ...

我想将其读到一维数组里面,可以开一个比较大的数组,每行的个数确实也不一定
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2012-12-4 16:49:05 | 显示全部楼层
mofangbao 发表于 2012-10-12 11:36
因为你想读取到数组里面,所以申请数组大小之前需要先知道行数和列数,因为二维数组是矩形的。
行数可以很 ...

我想还是就fortran读取数据请教你一个问题:
这个数据文件是150行,360列,这个我是知道的,所以我可以开一个数组,大小就是    real ::f(150,360),
现在的问题是,这个数组中的数据没有固定的格式,以Tab制表符分开的,这个格式我该怎么写?提醒一下好吗,谢谢
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2012-12-4 16:59:42 | 显示全部楼层
mofangbao 发表于 2012-10-12 11:36
因为你想读取到数组里面,所以申请数组大小之前需要先知道行数和列数,因为二维数组是矩形的。
行数可以很 ...

Tips:
我的数据大概这样的:
3.9996e+021        3.9996e+021        3.9996e+021        3.9996e+021        3.9996e+021       
3.9996e+021        3.9996e+021        3.9996e+021        3.9996e+021        3.9996e+021       
756.93        666.85        3.9996e+021        3.9996e+021        3.9996e+021         
762.06        772.83        758.68        759.47        703.21        3.9996e+021         
706.17        709.75        725.61        731.85        719.44        713.06        682.12        748
3.9996e+021        3.9996e+021        704.79        3.9996e+021        718.87        715.67       
中间是制表符
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

Copyright ©2011-2014 bbs.06climate.com All Rights Reserved.  Powered by Discuz! (京ICP-10201084)

本站信息均由会员发表,不代表气象家园立场,禁止在本站发表与国家法律相抵触言论

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