C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[15896] Re:유니코드로 된 텍스트를 어떻게 읽지요...?
제라툴 [] 1202 읽음    2002-02-28 03:55
남호성 님이 쓰신 글 :
: 안녕하세요...
:
: 지금 제가 유니코드로 되어 있는 텍스트(정확히 말해 한문)를 가지고 있습니다.
:
: 제 생각에는 유니코드가 두 바이트니까 한 바이트씩 읽어서 합쳐주면 될것 같은데,
:
: 생각대로 안되네요.
:
: 예를 들어 OpenDialog를 이용하여 textUniFile에 파일명을 넣은 후 다음 과정을 거쳤습니다.
:
:   p = textUniFile.c_str();
:   fid = fopen(p, "r+");
:
:   int index = 0;
:   fseek(fid, 2, 1);
:
:   for(;;){
:     c = fgetc(fid);
:     d = fgetc(fid);
:     bufp[index] = (wchar_t)((d<<8) | c);
: //    bufp[index] = fgetwc(fid);
:     index++;
:     if(c == EOF || d == EOF) break;
:   }
:
: 근데 이상하게도 제대로 안읽혀지는군요.
:
: 보니까 영어는 한바이트로 읽혀지는 것 같던데(정확한 이유는 모르겠음-.-)
:
: 아시는 분들 답변 좀 부탁드립니다.
:
: 그리고 저기 북마크 한것은 실행은 되는데 잘못된 번지 참조라고 해서 안되더군요.
:
: 꼬옥 답변 부탁드립니다
:
: 그럼 수고하십시요.

안녕하세요 제라툴입니다.

잼있는 질문이군요.. 우리가 도스시절에 사용하던 fopen이나 fsek.. 등등의 함수를 통해서

유니코드의 문자들을 처리하는데는 약간의 문제가 있습니다.

그래서 윈도우에서 제공하는 API을 주로 사용하는 걸로 알고 있습니다.

즉 FILE HANDLE을 통한 파일처리를 주로 사용하죠^^

우선 FILE HANDLE를 사용하면 많은 양의 데이터를 한번에 읽어서 메모리에서 처리할 수 있어서

기존의 방법보다는 추천하고 싶은 방법입니다.

FILE과련 Window API를 찾아보세요

해답을 얻으실 수 있을 겁니다.

A light Cross The Dark ..

Form Zeratul

---- 제천대성 ----

+ -

관련 글 리스트
15886 유니코드로 된 텍스트를 어떻게 읽지요...? 남호성 997 2002/02/27
15899     VCL의 FileOpen() 함수나 TFileStream 클래스를 사용해보세요. 김백일 1477 2002/02/28
15896     Re:유니코드로 된 텍스트를 어떻게 읽지요...? 제라툴 1202 2002/02/28
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.