- This topic has 2개 답변, 2명 참여, and was last updated 5 years, 6 months 전에 by ChoiYoun.
-
글쓴이글
-
-
JAEHEE회원
안녕하세요 항상 도움 감사히 받고 있습니다.
이번엔 readcol을 이용해 ASCII 파일을 읽어보려고 하는데요,
delmiter=’-:T ‘ 이렇게 하면, 뒤의 – 부호도 함께 없어져 버리더군요.
이 파일을 읽을 때 좋은 방법이 없을까요?A 2014-01-11T00:00:00.217 5124 217 -83.901 130.261 522.065 6879.061 64.5 -126 171260 3464 -1.804 10
A 2014-01-11T00:00:00.716 5124 716 -83.872 130.372 522.063 6879.061 64.4 -126 167335 3860 -1.779 10
A 2014-01-11T00:00:01.217 5124 1217 -83.843 130.483 522.061 6879.061 64.4 -126 169759 3036 -1.834 10
A 2014-01-11T00:00:01.716 5124 1716 -83.814 130.593 522.058 6879.061 64.4 -127 169441 3514 -1.745 10 -
JAEHEE회원
하나만 더 질문하겠습니다.
위의 파일을 급한대로 이렇게 읽었는데요readcol,infile1,iyr,mon,idm,ihr,min,sec,msec,t,longi,lat,heig,radi,sza,saa,ne1,te,scp,f, $
delimiter=’-:T ‘,FORMAT=’XFFFFFFFFFFFFFFFFFF’,/SILENT
scp2=-scpfor j=0,nb0-1 do begin
printf, r1, iyr[j],mon[j],idm[j],ihr[j],min[j],sec[j],heig[j],radi[j],ne1[j],te[j],scp2[j],f[j], $
format='(i4,2i3,2i3,f7.2,2f9.3,2i10,f13.3,i5)’
endfor실제로 코드를 돌려본면,
% Expression must be a scalar in this context:
<LONG64 Array[1]>.이러한 오류가 나옵니다.
어떻게 해결할 수 있을까요?
-
ChoiYoun회원
안녕하세요. 첫번째 질문에 대한 답변만 달아봅니다.
아래와 같은 방식으로 시간 부분을 문자열로 읽은 후 STRMID 함수를 이용해 분리하면 어떨까 싶습니다.
file = ‘./test.txt’
readcol, file, var1, var2, var3, var4, var5, var6, var7, var8, var9, var10, var11, var12, var13, var14, $
FORMAT = ‘(A, A, F, F, F, F, F, F, F, F, F, F, F, F)’year_arr = STRMID(var2, 0, 4)
month_arr = STRMID(var2, 5, 2)
day_arr = STRMID(var2, 8, 2)
hour_arr = STRMID(var2, 11, 2)
minute_arr = STRMID(var2, 14, 2)
second_arr = STRMID(var2, 17, 6)READCOL과 같은 외장 라이브러리 프로시저를 이용하는 것 외에도 내장함수를 이용하여 읽는 방법도 있는데, 이는 이상우 박사님 블로그 글을 참조하시면 도움이 될 수 있을 것 같습니다.
http://blog.daum.net/swrush/252(클릭)
- 이 답변은 ChoiYoun에 의해 5 years, 6 months 전에 수정됐습니다. 이유: FORMAT 변경
-
-
글쓴이글