爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 6075|回复: 12

[求助] Fortran读取一个行列不规则二进制的文件

[复制链接]

新浪微博达人勋

发表于 2015-9-21 20:57:41 | 显示全部楼层 |阅读模式

登录后查看更多精彩内容~

您需要 登录 才可以下载或查看,没有帐号?立即注册 新浪微博登陆

x
求助:Fortran新手,南信大的学生,请问各位大神,读取下面这个文件,该怎么破?首行是1982年1月,然后紧跟着37列17行数据,然后1982年2月,以此类推。。给点思路吧!!非常感谢!!

截图

截图
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2015-9-21 21:11:20 | 显示全部楼层
你用记事本和文本都打开看看。怎么会都不整齐呢,一般不会这样的
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2015-9-21 21:30:49 | 显示全部楼层
river 发表于 2015-9-21 21:11
你用记事本和文本都打开看看。怎么会都不整齐呢,一般不会这样的

就是第一行是1982 1 第二行以后就是37列17行的数据,以此类推。。就是想知道怎么读取?
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2015-9-21 22:08:57 | 显示全部楼层
用notepad++打开试试看是否整齐了
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2015-9-21 22:54:59 | 显示全部楼层
如果数据都是年月后面加37列17行的格式的话,你直接定义一个二维数组,其中一维大小为2+37*17=631,直接读就可以了。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2015-9-22 11:23:50 | 显示全部楼层
不懂是啥,评论挣金币
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2015-9-22 14:13:19 | 显示全部楼层
zhanggl 发表于 2015-9-21 22:54
如果数据都是年月后面加37列17行的格式的话,你直接定义一个二维数组,其中一维大小为2+37*17=631,直接读 ...

年月单独占一行,数据是另起一行的,囧。。然后还要提取5月分的数据。。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2015-9-22 15:22:41 | 显示全部楼层
低调高姿态 发表于 2015-9-22 14:13
年月单独占一行,数据是另起一行的,囧。。然后还要提取5月分的数据。。

恩,FORTRAN读数字型数据时,当第一行的数据个数小于数组元素个数时,它将自动继续读取第二行的数据,直到数据个数等于数组个数,所以大小为631的数组恰好可以读完前面的1+17=18行数据,而这个数组的第一二个元素就是年月,后面的数据就是剩下37*17个的数据,但考虑到这是多时间数据,你得定义一个二维数组。举个例子:
读:
1982    56
1 2 3 4 5 6
1 2 3 4 5 6
1 2 3 4 5 6
1 2 3 4 5 6
1 2 3 4 5 6
1983   56
9 8 7 5 6 4
9 8 7 5 6 4
9 8 7 5 6 4
9 8 7 5 6 4
9 8 7 5 6 4 a(1,:)
定义一个a(2,32)的数组,用a(0,:)放1982年的数据,a(1,:)放1982年的数据,搞定
另外一种方法:将整行数据当作字符串读进去,在进行分割搞定
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2015-9-22 20:19:52 | 显示全部楼层
辣么有规律,好好看看Fortran书
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2015-9-23 09:29:22 | 显示全部楼层
亲,好好看看书吧
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

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

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

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