Line Input # 가 참 사용하기 편한 놈이긴 한데,
이놈이 Chr(10)+chr(13)에 반응하기 때문에 캐리지리턴(Chr(13))을 사용하지 않는 TXT형식 문서의 경우 (유닉스 계열이라고) 사용하기 애매해진다.
해결 방법은 여러가지가 있겠지만, 용량이 클 경우 읽어올때 분리한다던가 뭐... 기타 등등
하지만 애초 코드를 한줄씩 읽어와서 분석하게끔 했다면 모조리 수정해야 되는 상황이 발생하니 딱히 추천하고 싶지는 않다. 결국 Chr(10)을 한줄의 끝으로 취급하는 걸 사용하면 되지 않느냐 - 라는게 핵심
(너무 쉬워서 포스팅 하기도 그렇지만, 과감하게.....!)
Sub Wansook_LineInput()
strData = ""
Do Until Right(strDAta, 1) = chr(10) Or Right(strData, 1)=Chr(13) Or EOF(1)
strData = strData & Input(1, #1)
Loop
End Sub
strData = ""
Do Until Right(strDAta, 1) = chr(10) Or Right(strData, 1)=Chr(13) Or EOF(1)
strData = strData & Input(1, #1)
Loop
End Sub
마, 이 정도의 코드. 변수는 알아서 설정하도록 하고.
핵심적으로 Input 함수를 사용 (Input #와는 다름)해서 1개씩 누적시키는게 골자다. (Mid를 파일에 적용시켰다고 보면 됨)
혹시 모르시 Chr(13)과 문서 끝도 반응하게 해 놓은 것이고, Open으로 열은 문서 번호는 일치시켜야 된다.
Ps. 이걸로 Import는 되지만 Export시 거의(!) 무조건 Chr(13)이 파일에 생성이되므로 무결성 보장을 위해서는 생성된 파일을 열어서 Chr(!3)을 삭제해줘야 된다. 이건 파일 시스템으로 열어서 Replace로 제거하는 것을 추천. 사람마다 해결방법은 다르겠지만.
Ps. Readall 로 한번에 불러오는 경우도 있지만 쪼개기 귀찮다(!!)




댓글을 달아 주세요