티스토리 뷰

반응형

포스팅을 하기에 앞서

개인적으로

요즘같이 주위가 어수선한 시기에

이틀연속으로(게임소개가 아닌) VB에 대한 팁을

올리게되어 상당히 기쁜마음이 들고 있음을 알리고 싶다.

ㅎㅎㅎㅎ

각설하고....

오늘의 주제는 VB에서 할 수 있는 파일 핸들링에 관한

역시나 짧고 굵은 소소한 팁에 대한 이야기로써 파일에 쓰기작업을 할 때 가졌던 궁금증에 대한 이야기이다.

내용은 사실 어제처럼 별거 아니지만

책에도 잘 안나오고 관심도가 떨어져서 키워드로 찾아봐도 찾기도 힘든 내용이기 때문에 ㅎㅎㅎㅎ

이번기회에 한번 봐 뒀다가 나중에 써먹을 일이 (꼭) 생길거라고 생각하고 가볍게 보길 바란다.
VB로

작업을 해 본 적이 있는 사람이라면 아마도 파일 핸들링을 해 본적이 있을 것이다.

그리고, 요즘과는 달리 과거 1차 필기시험과 2차 프로그램 실기시험으로 '정보처리 기사' 자격증을 따던

그 시절에 VB로 실기시험을 본 사람들이라면 파일에 정답을 써서 제출해 본 경험이 있을 것이다.

아래는 참고로 MSDN에 나와 있는 파일핸들링 도움말을 접어 올리니 궁금하다면 확인해 보기 바란다.


기본적으로 파일을 열어서 읽고 쓰기를 하려면 사용해야 하는 구문이 바로

Open pathname For mode [Access access] [lock] As [#]filenumber [Len=reclength]

이 구문이다.

필수 옵션만 본다면
Open pathname For mode  As [#]filenumber

정도가 될 것이다.

그럼 실제로 사용되어지는 코드를 살펴보도록 하자.

Dim a As String

a = "나는야 세상에서 제일 잘생긴 개발자"

Open App.Path & "\" & Format(Now, "YYYYMMDD") & ".txt" For Append As #1
Write #1, a
Close #1

그냥 평범한 코드이다. 보통 이렇게들 사용할 거라고 보아진다.

위 코드를 실행시키면

어플리케이션의 기본경로에 오늘날짜의 이름으로 txt파일이 생성되며, 내용은


요렇게 나온다.

자....... 혹시 눈치를 챘는지?

바로 이 대목에서 오늘 포스팅의 주제가 나왔다. 위 그림에서 뭐가 문제가 될까.

출력된 결과파일의 내용을 보면 문장 양쪽에 자동으로 더블 쿼테이션이 붙어서 나오는 걸 볼 수 있다.

이게 왜 문제일까?

만약에 어제 올렸던 포스팅과 같은 작업을 한다면 여기서 문제가 될 수 있다.
(참고링크 : [VB 6.0] VB사용자를 위한 깨알같은 팁 - 아스키 코드의 활용)

예를 들어 아래와 같은 코드로 파일에 쓰기를 한다고 가정하고 실행시켜 보자.

Dim a As String
a = "나는야 " & Chr(34) & "세상에서 제일 잘생긴" & Chr(34) & " 개발자"
Open App.Path & "\" & Format(Now, "YYYYMMDD") & ".txt" For Append As #1
Write #1, a
Close #1

 결과는?


음.... 요러면 문제가 된다. 이런걸 어따 쓰냐고 생각할 수도 있겠지만,

xml문서를 파싱한다거나 html을 다룰 경우에 반드시 문제가 될 것이다.(뭐 그 외에도 문제가 될 경우는 있을거다.)

어찌보면 사소한 문제이지만, 또 이런문제가 생기면 누가 알려줄까를 생각하면 또 답답해 질 수도 있는 문제다. ㅎ
그럼 바로 문제해결로 들어가서....

위에서 발생하는 문제의 원인은 Write 명령어 때문이다.

Wirte명령어를 바꿔주면 문제는 바로 해결이 된다. 아래 코드를 보도록 하자.

Dim a As String
a = "나는야 " & Chr(34) & "세상에서 제일 잘생긴" & Chr(34) & " 개발자"
Open App.Path & "\" & Format(Now, "YYYYMMDD") & ".txt" For Append As #1
''Write #1, a '' Write 명령어를 주석처리하고 Print명령어로 대체함.
Print #1, a
Close #1

Write를 Print로 바꾸어 보았다.


물론 예상한대로 결과가 잘 나왔다. ㅎㅎㅎ

굵고 짧게 포스팅을 하려고 했지만 또 대check없이 길어지는 탓에 오늘도 서둘러 마무리를 짓겠다.












블로그코리아에 블UP하기
반응형
댓글
반응형
05-17 05:57
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함