본문 바로가기

김탱 개발자/윈도우프로그래밍

유니코드 텍스트 파일 읽기/쓰기

작성중


유니코드로 인코딩된 텍스트파일을 읽을경우 CString 비교가 안되어서 골치아팠는데

일반적으로 코딩상에서 CString str=L"김태영" 을 저장하고 str.Compare(L"김태영") 은 되지만

CFile로 읽어들여와서 CString에 저장된것을 비교하기위해서는 뒤에 \r\n을 붙여줘야 비교가되더라..


읽기는 여러방법 중 직접 해본 두가지 방법이 있다.


CFile의 Read()로 전체파일 사이즈를 구해서 통으로 읽는방법

데이터를 분류하기위해서는 토큰을 써야하지만, 유니코드 데이터는 깔끔하게 들어온다.


CStdioFIle의 ReadString()로 한줄 한줄 읽는방법

라인으로 데이터를 구분 해놓았다면, 읽는 즉시 바로바로 사용이 가능하다.

CStdioFIle은 CFile에서 Text를 편하게 읽기 위해서(CFile::typeText) 만든 클래스이므로 CFile::typeBinary에는 부적합하다

그런 이유에서 비교함수가 작동을 못하는것 같다. 자세한건 더 알아봐야 할듯.




//////////////////////////////////////////////////////////////////


유니코드 쓰기는 간단하다.

앞에 유니코드 BOM만 붙여주면 된다.