InputBox의 공백("")과 취소(Cancel) 구분하기
포스팅 개요
Inputbox의 MSDN을 확인하면 "[취소] 단추를 누르면 함수는 길이가 0인 문자열("")을 반환"이라는 문구가 존재합니다. 프로그래머가 실제로 공백을 [취소]와 같은 의미로 취급한다면 이는 별 문제가 없습니다. 하지만 빈 문자열을 입력해야 되는 경우라면 결국 [취소]와 [확인]으로 등록한 빈 문자열을 구별해야 됩니다.
- 실제 테스트를 해보면 Inputbox 함수 사용 시 [취소] 동작에서 vbNullString이 반환되는 것을 알 수 있습니다.
- 이를 근거로 유니코드 문자열 버퍼의 주소를 반환하는 StrPtr 함수를 이용하여 구별해 보겠습니다.
예제 코드 작성
- StrPtr로 vbNullString의 버퍼 주소를 반환하면 0으로 표기됩니다.
- StrPtr로 공백("")의 버퍼 주소를 반환하면 0이 아닌 값으로 표기됩니다.
- 예제는 이를 이용한 간단한 소스 코드입니다.
Dim strTemp As String
strTemp = InputBox("Inputbox 취소 테스트!!")
If StrPtr(strTemp) = 0 Then
Text1.Text = "취소 Cancel"
Else
Text1.Text = strTemp
End If
실행 결과
- 이제 공백까지 구별하여 내용을 받을 수 있습니다.
- 결국 길이가 0인 문자열("")을 모두 검색하여야만 취소 확인이 가능하기 때문에 MSDN은 틀리지 않았습니다.
'Programming > Visual Basic 6' 카테고리의 다른 글
[VB6] 프로젝트 참조와 프로젝트 구성요소 이해하기 (0) | 2024.05.09 |
---|---|
[VB6] Windows에서 DLL 호출 시 검색 순서의 중요성 (0) | 2023.11.07 |
[VB6] 콤보박스(ComboBox) 길이 제한 해제 및 조절하기 (0) | 2023.01.06 |
[VB6] 시스템 시간을 밀리초(Millisecond)까지 가져오기 (0) | 2022.12.21 |
[VB6] Visual Basic 6 코드 입력창에서 사용되는 단축키 모음 (0) | 2022.12.20 |
[VB6] SendKeys 명령의 사용법과 특수키, 조합키 코드표 (0) | 2022.12.19 |
[VB6] 한글을 2바이트 계산하여 문자열 자르기 (Len, Left, Right, Mid 대체) (0) | 2022.12.17 |
[VB6] 폴더 생성 (경로에 포함 된 모든 폴더 생성) (2) | 2022.12.16 |
댓글