파일 합치기

게시판 IDL Q&A 파일 합치기

1 답변 글타래를 보이고 있습니다
  • 글쓴이
    • #1106 Reply
      good757
      회원

      안녕하세요 오랜만에 또 질문을 올리게 되었습니다
      TEST라는 폴더에 5X5행렬은 가지는 파일이 0,1,2,3,4,5,6,7,8,9,10,11.TXT라는 12개의 파일이 있습니다.
      제가 하고싶은것은 0,1파일은 합치고 그 다음 1,2파일을 합치고 그 다음은 2,3 이라는 파일을 11까지 합치게 하고싶습니다. 또한 이렇게 합치는 작업이 끝나게 되면 그 다음으로 0,1,2 3개의 파일을 위와 같이 순차적으로 합치게 하고싶습니다.
      제가 작성한 코드는 다음과 같습니다.
      findtxt1=’d:/test/test/*.txt’
      result1=file_search(findtxt1,count=ct)
      close, /all
      for i=0, ct-1, 1 do begin
      filename=file_basename(result1[i], ‘.txt’)
      for j=i, i+1 do begin ; 한개 간격으로 진행
      openr,7, result1[i]
      readf, 7, radar_1h
      radar_2h=radar_2h + radar_1h
      close, 7
      endfor
      openw, 8, ‘d:/test/’+filename+’_2h.txt’ ; 출력위치 및 파일명 지정
      printf, 8, radar_2h, format='(5F9.2)’
      radar_2h=radar_2h – radar_2h ; 변수 리셋
      close, 8
      endfor
      end
      이렇게 작성하였는데. 제가 뜻하는 대로 계산이 되지 않습니다.
      도와주시면 감사하겠습니다

    • #1110 Reply
      Jonghyuk
      회원

      radar_1h와 radar_2h에 대한 선언부가 코드에서 보이지 않는데, 이 부분이 없으면
      readf, 7, radar_1h
      에서 원하는 결과를 얻지 못할 것입니다.
      그리고 i=0부터 ct-1까지 이기 때문에, j=i에서 i+1까지로 하게 되면 맨 마지막에서 에러가 날 것입니다. 맨 마지막 파일이 i (즉 ct-1번)번에 들어 있을 텐데, 그 다음 파일을 요구하는 셈이 되니까요.

      그리고 5X5 행열이 12개 파일로 있는 정도의 작은 크기의 데이터라면 한번 읽어서 5X5X12 의 3차원 배열로 만들어 놓고 작업 하시는 것이 더 편하고 빠를 것 같습니다.

1 답변 글타래를 보이고 있습니다
'파일 합치기'에 답변달기
글쓴이 정보: