유니코드 문서에서 문자의 수를 offset으로 사용하는 fseek는 없는지요?
글쓴이: dltkddyd / 작성시간: 화, 2014/06/24 - 3:42오후
유니코드 문서의 변환코드가 무엇이든(utf8, utf16, utf32에 상관없이) 상관없이 파일을 다루는 프로그램을 만들고 있습니다. 파일을 읽어 제대로된 코드로 인식하도록 하는 함수는 만들었는데요. 읽다가 문서 뒤로 이동하고 싶을 때 사용할 수 있는 fseek 함수의 offset는 단지 1 바이트 단위만 허용합니다. 한글과 영어가 뒤섞인 utf8 문서에서 한 문자를 뒤로 이동하고 싶은데, 이 문자 단위를 offset으로 사용하고 싶습니다. 예컨대 문서가
ab지붕에는 cd가 있다
라는 내용의 문서에서 현재의 파일에 대한 위치 지정자가 '가'를 가리키고 있고, '지' 글자가 있는 위치로 이동할 때 7자를 offset으로 해서 '지'자로 이동할 수 있는 방법이 없을까요?
fseek(fp,-7,SEEK_CUR);
이라고 했을 때 '지'자로 이동할 수 없을지 궁금합니다. 혹시 없다면 문자 수만큼 이동할 수 있는 함수를 무엇으로 만들어야 하나요? 저수준 차원에서 만들어야 하는 것인지요? 뭐, 그러니까, 매크로 함수로 구현을 해야하는 것일가요? 그랬을 때 파일 포인터와 같은 자원은 어떻게 전달하고 회수할 수 있는지도 궁금합니다.
Forums:
http://userguide.icu-project.org/howtouseicu
http://userguide.icu-project.org/howtouseicu
댓글 달기