爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 3220|回复: 5

[求助] Z文件数据读取问题

[复制链接]

新浪微博达人勋

发表于 2015-12-23 16:47:30 | 显示全部楼层 |阅读模式

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

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

x
本人手里有小时文件资料,现在需要读取文件中的降水量和气温,但是文件中排列顺序是四行,列数不同,其中缺测的地方还用的:///表示,个数不一样高,导致我后来利用论坛的一个程序将其中的缺测变为99后,数据之间的空格还不等,之后想利用字符串分割,变成一个个数据,然后写入另一个文件,然后在读取,但是,总是出现这样如图的问题,实在是不知道哪里的问题,求各位大神帮助,不胜感激!!!!!! 或者哪位好心人指点我下到底怎么样可以直接读这个数据的气温和降水,PS:气温是数据中的0247,降水是数据中的000
program main
  
  implicit none
  
  character*300  :: str
  character*100  :: rstr(1000)
  integer*4   :: n,i
  open(22,file='00.txt')
    open(10,file='20110728010000.txt')
  
     read(22,"(a300)") str
  
!  str = '545110-99999-2013.TXT'
  call sub_split(trim(str),' ',rstr,n)
  print *,n
  do i= 1,n
   print *,i,len(rstr(i))
   write(10,"(a)") rstr(i)
  enddo
end
subroutine sub_split(str,instr,rstr,n)
  !!! 原字符串str从非空开始,结束于非空
!!! str 需要分割的字符串,instr 分割字符,支持单个字符或者字符串作为分割字符,rstr 存放分割结果的字符数组,允许最多存放1000段,每段100个字符,n 实际分割出的字符(串)数
  implicit none
  character(len=*) :: str,instr
  character*100  :: rstr(1000)
  integer*4   :: n
  integer*4   :: allcount,subcount
  integer*4   :: ilab,i
  logical*4   :: logflag
  allcount = len(str)
  subcount = len(instr)
  i=1
  n = 0
  ilab = 1
  logflag = .false.
  do while(i<=allcount-subcount)
   if(str(i:i+subcount-1).eq.instr) then
    if(logflag) then
     n = n+1
     rstr(n) = str(ilab:i-1)
     logflag = .false.
    endif
    ilab = i+subcount
    i = i+1
   else
    logflag = .true.
    i = i+1
   endif
  enddo
  if(logflag) then
   if(str(i:i+subcount-1).eq.instr) then
    n=n+1
    rstr(n) = str(ilab:i-1)
   else
    n=n+1
    rstr(n) = str(ilab:i+subcount-1)
   endif
  endif
  return
end

QQ截图20151223164048.png

00.txt

408 Bytes, 下载次数: 4, 下载积分: 金钱 -5

数据

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

新浪微博达人勋

 楼主| 发表于 2015-12-23 16:49:16 | 显示全部楼层
不知道怎么传数据不需要积分下载,再试试看。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2015-12-23 16:49:58 | 显示全部楼层
http://bbs.06climate.com/forum.php?mod=attachment&aid=NDc0NDh8ZDFkNTAzNzllNzBjZjliMjUxMTllODlkYmZhMzU5Yjh8MTcxNDY3MDA0Mw%3D%3D&request=yes&_f=.txt
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2015-12-23 17:18:12 | 显示全部楼层
已解决!!
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

新浪微博达人勋

发表于 2016-2-28 19:49:28 | 显示全部楼层
楼主你发的txt文件里的代码是用什么软件运行的
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2018-3-10 10:19:31 | 显示全部楼层
AUV 发表于 2016-2-28 19:49
楼主你发的txt文件里的代码是用什么软件运行的

我用的fortan
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

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

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

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