格式控制和按行读取都有问题
用数组试一下还是报错
。。。 数据有问题
改了一下午服了。。。
只能按行读取了,再进行分割判断,但是分割的字符不知道是啥。。。
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