|
저는 API쪽은 젬병이라 잘 모르겠고요...
(가능하면 항상 VCL쪽을 먼저 찾아보신 후에 API쪽을 찾아보세요.)
VCL의 FileOpen() 함수나 TFileStream 클래스를 사용하시면 될겁니다.
(후자를 더 추천합니다.)
예를 들어 유니코드 텍스트 파일 전체를 wchar_t 배열에 저장하시려면
다음과 같이 하면 됩니다.
TFileStream *inHandle = new TFileStream("Unicode.txt", fmOpenRead);
wchar_t *pszBuffer = new wchar_t[inHandle->Size];
inHandle->Read(pszBuffer, inHandle->Size);
엄청 간단하죠?
남호성 님이 쓰신 글 :
: 안녕하세요...
:
: 지금 제가 유니코드로 되어 있는 텍스트(정확히 말해 한문)를 가지고 있습니다.
:
: 제 생각에는 유니코드가 두 바이트니까 한 바이트씩 읽어서 합쳐주면 될것 같은데,
:
: 생각대로 안되네요.
:
: 예를 들어 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;
: }
:
: 근데 이상하게도 제대로 안읽혀지는군요.
:
: 보니까 영어는 한바이트로 읽혀지는 것 같던데(정확한 이유는 모르겠음-.-)
:
: 아시는 분들 답변 좀 부탁드립니다.
:
: 그리고 저기 북마크 한것은 실행은 되는데 잘못된 번지 참조라고 해서 안되더군요.
:
: 꼬옥 답변 부탁드립니다
:
: 그럼 수고하십시요.
|