|
남호성 님이 쓰신 글 :
: 안녕하세요...
:
: 지금 제가 유니코드로 되어 있는 텍스트(정확히 말해 한문)를 가지고 있습니다.
:
: 제 생각에는 유니코드가 두 바이트니까 한 바이트씩 읽어서 합쳐주면 될것 같은데,
:
: 생각대로 안되네요.
:
: 예를 들어 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
---- 제천대성 ----
|