반응형
HOWTO: Visual Basic 폼에서 유니코드 문자열을 읽고 표시하는 방법
기술 자료 ID | : | 193540 |
마지막 검토 | : | 2003년 8월 19일 화요일 |
수정 | : | 1.0 |
이 문서는 이전에 다음 ID로 출판되었음: KR193540
요약
본 문서에서는 유니코드 텍스트 파일에서 유니코드 문자열을 읽어 Visual Basic 폼에 표시하는 방법을 설명합니다.
추가 정보
Visual Basic은 내부적으로 더블바이트 유니코드 표준을 기반으로 합니다. 그러나, Visual Basic 외부에서는 대부분이 여전히 싱글바이트 ANSI 모델을 사용합니다. 이 때문에 Visual Basic은 두 개의 폼 집합을 제공하고 ANSI 집합을 기본 컨트롤로 사용합니다. ANSI 집합 폼 컨트롤에 전달되는 모든 문자열은 내부 유니코드 표현에서 ANSI 표현으로 변환되며 유니코드 문자열을 올바르게 표시하지 않습니다. Visual Basic 폼에서 유니코드 문자열을 표시하려면 유니코드(Forms 2.0) 컨트롤을 사용해야 합니다. 아래 예제는 Forms 2.0 컨트롤을 사용하여 유니코드 텍스트 파일에서 읽은 유니코드 문자열을 표시하는 방법을 보여줍니다. 이 동작을 수행하려면 유니코드 언어 패키지 지원이 필요하기 때문에 이 예제는 현재 Windows NT에서만 지원됩니다.
참고: 본 문서에서 사용하는 Forms 2.0 컨트롤은 Visual Basic 폼에서 사용하기 위해 설계되지 않았으며 이 환경에서 공식 테스트를 거치지 않았습니다. 본 문서에서는 Visual Basic 내부 컨트롤의 한계를 해결하기 위해 이 제한된 컨텍스트에서만 Forms 2.0 컨트롤을 사용하는 방법을 설명합니다. Visual Basic 폼에서 이 컨트롤의 다른 기능을 사용하는 것은 지원되지 않습니다.
또한 Forms 2.0은 Microsoft Office에 포함된 컨트롤로서 재배포가 금지되어 있습니다. 따라서, Forms 2.0(fm20.dll)을 응용 프로그램과 함께 배포할 수 없으므로 대상 컴퓨터에 이미 이 컨트롤이 있어야 합니다. fm20.dll이 없는 최종 사용자는 fm20.dll을 포함하고 있는 Microsoft ActiveX Control Pad를 아래 웹 사이트에서 다운로드할 수 있습니다.
fm20.dll의 배포에 대한 자세한 내용은 Microsoft 기술 자료의 다음 문서를 참조하십시오.
참고: 본 문서에서 사용하는 Forms 2.0 컨트롤은 Visual Basic 폼에서 사용하기 위해 설계되지 않았으며 이 환경에서 공식 테스트를 거치지 않았습니다. 본 문서에서는 Visual Basic 내부 컨트롤의 한계를 해결하기 위해 이 제한된 컨텍스트에서만 Forms 2.0 컨트롤을 사용하는 방법을 설명합니다. Visual Basic 폼에서 이 컨트롤의 다른 기능을 사용하는 것은 지원되지 않습니다.
또한 Forms 2.0은 Microsoft Office에 포함된 컨트롤로서 재배포가 금지되어 있습니다. 따라서, Forms 2.0(fm20.dll)을 응용 프로그램과 함께 배포할 수 없으므로 대상 컴퓨터에 이미 이 컨트롤이 있어야 합니다. fm20.dll이 없는 최종 사용자는 fm20.dll을 포함하고 있는 Microsoft ActiveX Control Pad를 아래 웹 사이트에서 다운로드할 수 있습니다.
http://msdn.microsoft.com/workshop/misc/cpad/ (http://msdn.microsoft.com/workshop/misc/cpad/ )
fm20.dll의 배포에 대한 자세한 내용은 Microsoft 기술 자료의 다음 문서를 참조하십시오.
224305 (http://support.microsoft.com/kb/224305/EN-US/) INFO: Usage and Redistribution of FM20.DLL [OffDev]
예제 작성을 위한 단계별 가이드
1. | 표준 EXE 프로젝트를 만듭니다. 기본적으로 Form1이 생성됩니다. |
2. | 프로젝트 메뉴에서 구성 요소를 선택하고 Microsoft Forms 2.0 Object Library를 선택합니다. 유니코드 버전의 텍스트 상자, 레이블 등을 포함하여 여러 개의 새 컨트롤이 도구 상자에 추가됩니다. |
3. | Forms 2.0 텍스트 상자를 Form1에 추가하고 기본 이름인 TextBox1을 적용합니다. 텍스트 상자의 글꼴을 바탕으로 설정합니다. |
4. | Form1에 두 개의 명령 단추를 추가합니다. |
5. | Form1의 코드 창에 아래 코드를 추가합니다. Private Sub Command1_Click() Dim a(0 To 5) As Byte a(0) = &HFF a(1) = &HFE a(2) = &H0 a(3) = &HAC a(4) = &H44 a(5) = &H0 Open "unicode.txt" For Binary As #1 Put #1, , a Close #1 End Sub Private Sub Command2_Click() Dim txtline As String Open "unicode.txt" For Binary As #1 txtline = InputB(2, #1) ' always FF FE, skip them txtline = InputB(4, #1) Close #1 TextBox1.Text = txtline ' display the string End Sub 유니코드 텍스트 파일은 항상 FF FE 바이트로 시작되므로 이 두 바이트를 건너뛰어야 합니다. 또한, 파일에서 유니코드 문자열을 읽으려면 파일을 바이너리로 열고 InputB를 사용해야 합니다. |
6. | 응용 프로그램을 실행합니다. Command1 단추를 눌러 유니코드 텍스트 파일을 만듭니다. |
7. | Command2 단추를 누릅니다. 한글 가와 영문자 D가 텍스트 상자에 올바르게 표시됩니다. 또한, 바탕 글꼴을 사용하여 메모장에서 unicode.txt 파일을 확인할 수도 있습니다. |
참조
반응형