안녕하세요? 홍환민입니다.
오늘은 온라인으로 글을 적네요..
다들 어떤 문자열을 처리할때 다음과 같은 방식 중 하나를 쓰겠지요.
1. 기본적으로 씨빌더에서 제공하고.. 거의 대부분의 VCL에서 스트링을 다룰때
사용하는 String. (typed AnsiString String; 이렇게 되어있죠.)
2. 전통적인 C 적인 방법.. 포인터나 배열을 이용하는 방법이죠.
대부분 이 두가지를 사용하실 텐데요.
이렇게 다루는 경우 한바이트씩 접근해서 다루게 되죠.
다음과 같은 문자가 있다고 합시다.
"나는 aa야. 음하하"
배열이나 포인터.. 혹은 String을 이용해서 저것에게 어떠한 처리를 해주고자
할때... 결국 이렇게 밖에 접근을 못합니다.
'나'의 앞바이트, 뒤바이트.. 공백, a, a, '야'의 앞바이트, 뒤바이트..
이런식이죠. (한글이 두바이트로 구성되는건 아시겠죠? ^^)
그런데 여기 '나', '는', ' ', 'a', 'a', '야'... 단위로 접근하는 방법이
있습니다.
간단합니다. WideString이라는 거죠.. 한번 테스트 해보시길..
스트링 관련 함수들도 대부분 WideString을 제대로 처리합니다.
그리고 참고로 WideChar와 WideString은 유니코드를 사용한답니다.
(유니코드라고 하지만 뭐니뭐니? 해도 젤 좋은건 조합형 코드죠..)
그리고 또 한가지 ... AnsiString을 다룰 때 어떤 문자에 대해
이게 한바이트짜리 문자여? 아니면 두바이트 문자의 첫번째 바이트여?
두번째 바이트여?? 를 알아볼 수 있는 방법이
존재합니다. 바로 ByteType 라는 것이지요. 한번 도움말을 보시면 알 수 있을
겁니다. 행복하세요..
한글 영문 혼합 문자열을 다룰때는 WideStirng을 쓰자!
(AnsiString과 WideStirng 간에는 대입만으로도 변환이 가능합니다. 캐스트연산도
가능합니다. 또한 보통 C 방식의 문자열과 AnsiString이 변환이 쉽게 가능하니
WideStirng과도 변환이 가능하죠.)
|