티스토리 뷰
반응형
1편은 아래 링크에서 확인하실 수 있습니다. ^^
2009/05/14 - [VB 6.0] - CommonDialog(공통대화상자) - 1. 파일열기편
아아...음음~~
microphone check one, two
keyboard도 mouse도 check OK.....
자... 공대상자 정복을 위한 두번째 발걸음 CommonDialog(공통대화상자) - 2.파일저장하기 편
시작합니다. ^^
.
.
.
.
이번 시간에는 지난번에도 얘기 했듯이...
공대상자를 이용한 파일저장하기를 시도해 보기로 하겠다.
사실 파일저장하기 라는 걸 어떻게 설명하면 가장 적절할까...에 대해서 좀 고민을 했다.
설명모델을 고민하고 고민한 끝에 결국
메모장을 만들어 보는것이 단순하면서도 가장 적절하다는 생각이 들었다.
그래서....
이번에는 간단한 메모장을 만들어 보면서 공대상자 파일저장하기 편을 설명해 보겠다.
자...
메모장을 만들기 위해서는
간단하게 다음의 5가지만 하면 된다.
1. 폼에 richtextbox를 추가.
2. 그리고 저장하기 버튼을 끌어놓기.
3. richtextbox에 입력할 내용 변경.
4. 저장하기 버튼 클릭.
5. 파일이 저장되었는지 확인.
- 끗 -
ㅎㅎㅎ
참 쉽죠잉~ ㅋㅋ 이번편은 끝입니다. 다들 돌아가세요...
각설하고
이제 하나하나 구체적으로 구현해 보자. ㅎㅎㅎ
1. 폼에 richtextbox를 추가.
2. 그리고 저장하기 버튼을 끌어놓기.
화면에 보이는 공란이 바로 RichTextBox(앞으로는 줄여서 RTB)되시겠다.
(뭐.. 나머지 메뉴항목이라던지, toolbar, coolbar, imageList등등이 첨가되었으나
지금시간은 공대상자를 이용한 파일저장이니 다른 컨트롤의 구현방법에 대해서는 따로 질문하던지 다음번에 따로 설명하는 시간을 갖도록 하겠다.)
먼저
적절한 크기의 폼을 설정하고
역시 적절한 크기의 RTB를 끌어다 놓는다.
그리고 저장을 하기 위한 적절한 크기의 CommandButton을 설치한다.
아니 벌써
1단계, 2단계는 끝.....
우왕.....
\(′∀`)ノ
3. richtextbox에 입력할 내용 변경.
4. 저장하기 버튼 클릭.
.
.
.
1, 2 과정이 너무나도 빠르게 지나갔다....
후후... 그만큼 VB의 생산력이 대단하다는 반증이겠지.
하지만
이제부터 시작이니까 다들 꽉잡으라고.. 오늘은 '공대상자 파일저장하기편'으로 간다!!!
.
.
.
사실 3번이 RTB에 입력할 내용 변경 이지만
이건 런타임때 이야기 이고
우린 당연히 프로그램 디자인타임을 생각해 봐야 한다.
그럼 메모장을 떠올려 보도록 하자.
조건
1)
처음 아무것도 입력이 되어있지 않은 메모장은 저장버튼을 눌렀을 때
저장을 어디다가 할 것인지를 선택해야 한다.(저장 공대상자 사용)
2)
메모장을 한차례 이상 저장한 이 후에 저장버튼을 누르면
지금 열려있는 파일에 입력한 내용이 저장되어야 한다.
3)
새 이름으로 저장 혹은 다른이름으로 저장 버튼을 누르면
저장 공대상자를 띄워서 저장할 경로를 입력받는다.
이번파트는 뭐 이정도로 설명이 가능하지 않을까 생각한다.
그럼 하나하나 살펴보자.
저장 공대상자는 간단하게 밑의 세줄 코드로 열 수가 있다.
CommonDailog.Filter = "엑셀파일(*.xls)|*.xls|text파일(*.txt)|*.txt|모든파일(*.*)|*.*"
CommonDailog.Title = "파일 저장"
CommonDailog.ShowSave
아래 그림을 보자.
저장하기 버튼을 눌렀을 경우 이벤트에서 위의 코드를 실행 시킨 경우이다.
Filter라는 속성은
위의 그림에서 봤을 때 파일 형식에 해당하는 부분이다.
즉, 저장하고자 하는 파일의 형식과 확장자를 "|" 기호로 구분해서 나열해 주면 된다.
그리고 Title속성을 지정해 주면
공대상자가 열렸을 때 타이틀 즉, 제목표시줄에 해당하는 부분의 글자가 표시된다.
위의 두가지 옵션설정을 했다면
마지막으로 showSave 명령어로 공대상자를 띄우면 되는 것이다.
그리고,
일반적으로 윈도우 응용프로그램들에서는
저장하기 버튼이 아닌 메뉴를 사용해서 파일을 저장할 수도 있다.
밑의 그림은 메뉴를 이용한 공대상자를 띄우는 예이다.
아...그리고
원래 엑셀 또는 메모장의 경우 저장할 내용이 없어도 파일 저장이 가능하도록 되어있으나
나는 저장할 내용이 없다면 저장이 안되도록 내용을 설정했다.
자 그럼 파일을 저장해 보도록 하자.
RTB로 파일을 저장하기 위한 문구는 다음과 같다.
RichTextBox1.SaveFile
요 SaveFile을 실행시키시 위해서는
아래 그림과 같이 속성이 두가지를 지정해 주어야 한다.
첫번째 속성은 전체경로를 포함한 저장할 파일의 이름이다.
여기에는 CommonDialog.FilaName 속성을 그대로 적용시키면 된다고 보면된다.
그리고 두번째 속성이 중요한데,
Flag라고만 되어있지 별 다른 설명이 없다. ㅎㅎㅎ
이 Flag 속성은 두가지로 되어있다.
상수 값 0, 상수 rtfRTF
상수 값 1, 상수 rtfText
디폴트값은 0이다.
그래서 Flag를 지정하지 않고 저장하고
파일을 열어보면 RTF값 들이 저장이 되서 보여질 것이다.
우리가 원하는 건 입력한 텍스트가 그대로 저장되는 것이기 때문에
저장 Flag는 반드시 상수 1 혹은 rtfText를 선택해야 한다.
.
.
.
여기까지 왔다면
또 하나 생각해야 할 것이 있다.
그거슨...
저장하고자 하는 파일이 해당경로에 이미 존재하는지 여부를 체크하는 것이다.
해당경로에 동일한 파일이 존재하는지는
Dir이란 함수를 사용한다.
사용법은 다음과 같고,
Dir(CommonDailog.FileName)
해당하는 파일명을 반환한다.
해서...
위 함수를 사용해서 반환값이 없다면 그냥 저장하고
반환값이 존재한다면 덮어쓸 것인지, 다시 이름을 정할 것인지를 정해서
파일을 저장해야 낭패를 볼 일이 없을것이니 반드시 이점 유의해야 할 것이다.
Dir함수로 체크하는 예)
If Dir(CMD.FileName) = "" Then
RichTextBox1.SaveFile CMD.FileName, rtfText ''rtfRTF
Else
strMsg = CMD.FileTitle & _
"파일이 이미 존재합니다." & vbCrLf & _
"덮어 쓸까요?"
intYesNo = MsgBox(strMsg, vbQuestion + vbYesNoCancel, "파일 중복")
Select Case intYesNo
Case vbYes
RichTextBox1.SaveFile CMD.FileName, rtfText ''rtfRTF
Case vbNo
GoTo retry
Case vbCancel
Exit Sub
End Select
End If
5. 파일이 저장되었는지 확인.
자.... 드디어 마지막 파일 저장단계까지 와버렸다.
파일을 저장했다면 제대로 저장되었는지 확인을 해보도록 하자.
여기서 잠깐....
내용을 조금만 뒤로 되돌아가서...
앞서 공대상자에서 파일을 저장할 때 Excel, Text, 모든형식의 Filter를 적용했었다.
그렇다면....
확장자를 xls나 txt로 주게되면 정말 Excel파일로, Text파일로 저장이 잘 될까.....
으흐흐~ 궁금하다면
바로 확인해 보도록 하자.
오오오~~~
엑셀파일과 텍스트파일 둘 다 정상적으로 저장이 되었다.
물론 직접 엑셀 개체를 불러들여서 열어서 파일을 작성하고 저장하는 방법도 있지만
오늘은 여기까지 하는 걸로 이번편을 마치도록 하겠다...
사실..
업무 보면서 짬짬이 작성하느라 내용이 앞뒤도 없고 헷갈리고 그런다. ㅎㅎㅎㅎ
일단 포스트 공개하고 나중에 다시 어색한 부분을 수정하기로 하겠음.
다음번에는 공대상자를 이용한 인쇄, 인쇄옵션 등에 대해서 알아보기로 하고
오늘은 여기서
- 끗 -
반응형
'VB 6.0 & java(JSP, Servlet) etc' 카테고리의 다른 글
FileOpenConstants - CommonDialog 파일관련 Flags속성 (0) | 2009.06.30 |
---|---|
[VB 6.0] Early Binding과 Late Binding - 객체 참조 (0) | 2009.06.16 |
[vb 6.0] mouse wheel 사용하기 (0) | 2009.06.09 |
[vb 6.0] ADO - RecordSet 타임아웃 속성 걸기 - Connection 응용 (1) | 2009.06.02 |
CommonDialog(공통대화상자) - 1. 파일열기편 (6) | 2009.05.14 |
댓글
반응형
02-14 00:04
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 고전게임
- MS-SQL
- 추억의 게임
- xml강좌
- 플래시게임
- c#
- 8비트상성
- Excel
- 중독성짱게임
- 좀비게임
- 플래쉬게임
- 오락실게임
- XML Programming with VB 6.0
- 플래쉬
- J.S Bach
- C
- XML
- 레트로게임
- 고전명작
- SQL
- 플래시
- brawlstars
- 틀린그림찾기
- 오락실 게임
- 브롤스타즈
- 다른그림찾기
- 엑셀
- 플래시 게임
- 8비트
- 플래쉬 게임
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함