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
[15899] VCL의 FileOpen() 함수나 TFileStream 클래스를 사용해보세요.
김백일 [cedar] 1477 읽음    2002-02-28 04:36
저는 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;
:   }
:
: 근데 이상하게도 제대로 안읽혀지는군요.
:
: 보니까 영어는 한바이트로 읽혀지는 것 같던데(정확한 이유는 모르겠음-.-)
:
: 아시는 분들 답변 좀 부탁드립니다.
:
: 그리고 저기 북마크 한것은 실행은 되는데 잘못된 번지 참조라고 해서 안되더군요.
:
: 꼬옥 답변 부탁드립니다
:
: 그럼 수고하십시요.

+ -

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