txt读取bug

格式控制和按行读取都有问题

用数组试一下还是报错

。。。 数据有问题

改了一下午服了。。。

只能按行读取了,再进行分割判断,但是分割的字符不知道是啥。。。

pro tib_test
  COMPILE_OPT IDL2,hidden
  e=envi(/headless)
;  file = 'E:\data\BT\bt_500\FY3B_MWRID_GBAL_L1_20130102_2020_010KM_MS_result.tif'
;  ;E:\data\wendu_lc_500_dem\A20121220.tif
;  ;根据bt的日期构造温度文件名,打开,站点坐标转温度文件坐标 xf_t yf_t 文件号fid_bt
;  ;下面站点循环构造dim_t
;  t_name = strsplit(file,'_',/extract)
;  t_file = 'E:\data\wendu_lc_500_dem\A'+t_name[5]+'.tif'
;  temp = t_name[5]
;  print,strmid(temp,0)
;  print,t_file
;  envi_open_file,t_file,r_fid = t_fid
;  print,t_fid  



;   fn='C:\Users\Administrator\Desktop\tibtation.csv';
;   data=READ_CSV(fn,count=nsta,header=header);
;   point_fid=data.(0);
;   id=data.(1);站点纬度
;   print,id[0]
;   help,id

;   pos = 0
;   cnt = replicate(0,20)
;   path = 'C:\Users\Administrator\Desktop\青藏高原雪深数据集1961-2013\青藏高原雪深数据集1961-2013\Tibetan_Plateau_Snow_Depth_1961-2013'
;   files = file_search(path,'*.txt',count=n)
;   print,n
;   for i = 0 , n - 1 do begin
;    ;openr,lun,files[i],/get_lun
;    ;print,files[i],file_lines(files[i])
;    if file_lines(files[i]) eq 19358 then begin
;      cnt[pos] = 
;    endif
;   endfor
;   file = 'C:\Users\Administrator\Desktop\青藏高原雪深数据集1961-2013\青藏高原雪深数据集1961-2013\Tibetan_Plateau_Snow_Depth_1961-2013\52868.txt'
   ;openr,lun,file,/get_lun
   
   ;file_lines
   
   ;free_lun,lun
   
   
   
   a = '20120203'
   a = '19971224'
   year = fix(strmid(a,0,4))
   month = fix(strmid(a,4,2))
   day = fix(strmid(a,6,2))
   
   file = 'C:\Users\Administrator\Desktop\青藏高原雪深数据集1961-2013\青藏高原雪深数据集1961-2013\Tibetan_Plateau_Snow_Depth_1961-2013\'
   files = file_search(file,'*.txt',count=cnt)
   
   c = 0
   
   for i=0,cnt-1 do begin
    openr,lun,files[i],/get_lun
    n = file_lines(files[i])
    
    temp=''
;    arr = fltarr(5,n)
;    readf,lun,arr
    ;print,arr
    
    for j = 0 , n-1 do begin
      
        
     readf,lun,temp
     ;help,temp[0]
     
     ;print,temp[0]
     ;print,strlen(temp[0])
     out = strsplit(temp[0],/extract)
     ;print,n_elements(out)
     
     if fix(out[1]) eq year and fix(out[2]) eq month and fix(out[3]) eq day then begin
      if n_elements(out) eq 5 then begin
        ;print,"是你"
        ;print,out[4]
        c +=1
      endif else begin
        print,"是我"
        print,-999
        c+=1
      endelse
     endif
        
;     dd = 0.0
;     readf,lun,c,y,m,d,dd
;     print,c,y,m,d,dd
;     
;     readf,lun,format='(i6,i5,i3,i3,i1)',c,y,m,d,dd
;     print,c,y,m,d,dd
     
;     readf,lun,format='(i5,i5,i3,i3,i2)',c,y,m,d,dd
;     print,c,y,m,d,dd
    
     ;tem = strsplit(temp[0],'    ',/extract)
     ;help,tem
    
;     if fix(y) eq year and fix(m) eq month and fix(d) eq day then begin
;       print,c,y,m,d,dd
;     endif

;     if fix(temp[1]) eq year and fix(temp[2]) eq month and fix(temp[3]) eq day then begin
;       print,temp[4]
;     endif

    endfor
    
    free_lun,lun
   endfor
    print,c
   ;make_array int int int
   ;openr,lun,file,/get_lun
   
   
   

   
   

end

Success

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值