爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 6110|回复: 7

[求助] Fortran 如何读取包含空白的txt文件并赋值99999

[复制链接]

新浪微博达人勋

发表于 2017-5-29 10:31:03 | 显示全部楼层 |阅读模式

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

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

x
现有批量txt数据,但是在数据中间有些地方是空白,其实就是没有值,但是直接读会把后面的读到前面来,现想给空白赋值99999,请问如何实现?跪求!!!数据的类型给上传图片了
111.jpg
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2017-5-29 11:12:29 | 显示全部楼层
直接用字符串读取一整个记录,然后自己数一下位数进行相应的转换。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2017-5-29 11:34:49 | 显示全部楼层
用matlab会不会好一点,对于某一行行数未知的数据,fortran处理起来多少会有点麻烦。楼上的也是一种办法,好像气象家园里有人给出过未知行数处理的例子,可以搜一下
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2017-5-29 12:14:03 | 显示全部楼层
同意1楼,既然是规整的格式文本,就完全按文本格式处理,把格式控制写全,全是转换成字符串,再转float

至于判断行数,个人认为不是问题,直接判断文末就好,似乎没什么特别地方,但这种方式的问题在于数组的大小不能提前确定;
采用先通读一遍判断行数可以解决这问题,而且理论上一般的处理数据耗时也可以忽略。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2017-5-31 15:21:33 | 显示全部楼层
lqouc 发表于 2017-5-29 11:12
直接用字符串读取一整个记录,然后自己数一下位数进行相应的转换。

可能是这几行正好是规整的,后面又不规整的地方,关键我后面还是存在数据之间的处理,到时候就不能按格式长度来读取这些数据,就得按整型实型来读,所以还是先复制9999,后面才好进行处理,请问还能有其他方法么?
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2017-5-31 15:22:28 | 显示全部楼层
aridlhy 发表于 2017-5-29 11:34
用matlab会不会好一点,对于某一行行数未知的数据,fortran处理起来多少会有点麻烦。楼上的也是一种办法, ...

MATLAB是个方法,只是对MATLAB不熟悉,想着先看看fortran能不能解决了这个问题
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2017-5-31 15:52:17 | 显示全部楼层
郭小小 发表于 2017-5-31 15:21
可能是这几行正好是规整的,后面又不规整的地方,关键我后面还是存在数据之间的处理,到时候就不能按格式 ...

1. 后面什么样算是不规整?从你的截图看不出。只要有规律可循就行。
2. 字符串转换整形或者实型数据不就是一个read的事情么,不明白有什么不好处理。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2020-5-20 17:01:13 | 显示全部楼层
楼主你的问题解决了吗 我也不会呢 可否告知我一下
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

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

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

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