爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 3020|回复: 4

[求助] read残缺值行数读取失败,望高手指点

[复制链接]

新浪微博达人勋

发表于 2014-2-11 17:26:15 | 显示全部楼层 |阅读模式

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

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

x
Fortran read TXT文本数据。中间某些行(不确定行数,随机出现)有残缺值。以第一行为例,需要读取的数据分别是1  2  3.0  4.0  5.01。示例中第六行和第七行是有残缺值的数据。
问题是在TXT数据读取过程中,当读到具有残缺值的行的时候,数据会自动保存为上一行数据。例如第六行有残缺值,处理之后的第六行数据会重复第五行的数据。
遇到的问题是:如何保存数据具有残缺的行的数据,并将有///或者////残缺值的数据用111或者1111替代。望高手指点。多谢!
例如:
第一行数据     1  2  10:58:58  3.0   4.0    5.01
第二行数据     1  3  10:58:59  3.2   4.5    5.07
第三行数据     1  4  10:59:00  3.1   4.6    5.88
第四行数据     1  5  10:59:01  3.7   4.8    5.59
第五行数据     1  6  10:59:02  3.5   4.2    5.75
第六行数据     1  7  10:59:03 ///   ///    ////
第七行数据     1  8  10:59:04  3.1  ///    5.66
第八行数据     1  9  10:59:05 ///   ///    5.57
第九行数据     1  10  10:59:06  3.2   4.1    5.81
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2014-2-12 15:38:14 | 显示全部楼层
用字符形式度数据,如果遇到 '/'用'1'代替
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2014-2-12 17:06:52 | 显示全部楼层

将变量换为字符型,由于残缺值的行的空格数与数据完整行不一致,采用无格式读取,此时,在读取过程中,在具有残缺值的行时,开始几个数据是正常的,当遇到////,数据全变成aaaaaaaaaa,这一行后面正常的数据也无法读取。如果下一行数据完整,那么可以正常读取。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2014-2-13 20:00:25 | 显示全部楼层
longxiaozi1985 发表于 2014-2-12 17:06
将变量换为字符型,由于残缺值的行的空格数与数据完整行不一致,采用无格式读取,此时,在读取过程中,在 ...

应该不会遇到这种情况吧。真个数据都是用字符形式读,遇到 / 才会将其变成1 ,与数据行中空格没有关系吧,所以应该不会出现很多aaaa。。。这种情况吧。  假设你的数据行有60个长度,那么用 声明数据长度 character data*60 read(*,'(a)')data
然后判断这60个字符中是否有/,如果有则用 1  代替。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 成长值: 0
发表于 2014-2-16 10:21:05 | 显示全部楼层
我试了一下,没有试出来,你的问题实际上转化为对斜杠的处理,建议阅读帖子:http://bbs.06climate.com/forum.php?mod=viewthread&tid=4585

看看能否有帮助。
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

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

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

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