정규식을 이용하면 문자열 처리를 보다 다양하고 간편하게 처리할 수 있다는 것을 알아 보았다.
ANSI 코드 문자열을 Unicode 문자열로 변환하기 위해서는 "xxx" -> _T("xxx") 로 치환해 주어야 한다.
전처리기 _T(x) 는 다음과 같이 정의되어 있다.
#define _TEXT(x) __T(x)
#ifdef _UNICODE
#define __T(x) L ## x
#else
#define __T(x) x
#endif
_UNICODE 이면
L
"xxx"로 치환,
_UNICODE가 아니면 "xxx"로 치환.
그렇다면 단순히 "xxx"를 찾아서 _T("xxx")로 치환해 주면 간단히 유니코드를 지원하는 문자열이 된다. (
"말이 쉽지 어느 세월에 다 바꾸냐?"
하고 생각하시는 분들은 아랫글을 봐 주세요. ^^; )
그래서 짜잔!! 정규식의 활용 2번째. 말이 길어지면 지루해지는 법. 결과부터 볼까요?
왼쪽의 소스코드에는 "xxx" 와 같은 문구가 4번 등장한다.
- #include "stdafx.h" 보라색 밑줄
- main() 안의 초록색 밑줄
그리고 오른쪽의 바꾸기 탭에 "찾을 내용"과 "바꿀 내용" 그리고 찾기 옵션의 정규식 부분을 잘 보자!
찾을 내용 :
(#으로 문장이 시작되고, "를 만날때까지)
를 무시하고,
("로 시작해서 "가 아닌 문자열들을 포함하고 "로 끝나는 부분)
을 찾는다.
바꿀 내용 : \0 위에서 파란색 괄호에 둘러쌓인 부분을 선택하고, 앞에는 _T(를 붙이고 뒤에는 )를 붙인다.
이렇게 전체 바꾸기를 수행한 다음 결과를 보도록 하자.
위와 같이 #으로 시작하는 "xxx" 부분(
보라색 밑줄
)은 바뀌지 않았고,
#으로 시작하지 않는 "xxx" 부분(초록색 밑줄)이 _T("xxx")로 치환 되었다.
MSDN 참조 : http://msdn.microsoft.com/ko-kr/library/aa293063(VS.71).aspx
http://msdn.microsoft.com/ko-kr/library/2k3te2cs(VS.80).aspx
'개발 TIP > 개발 TIP' 카테고리의 다른 글
MS Visual Studio 재배포 패키지 다운로드 (0) | 2014.07.10 |
---|---|
[C, C++, MFC] Release 모드로 build된 어플리케이션의 디버깅. (0) | 2012.11.28 |
Visual Studio 2008, QT 4.6.0, Add in 설치법 (0) | 2012.01.25 |
[C, C++, MFC] Visual Studio 2008 Release 모드에서 디버깅하기 (0) | 2011.12.15 |
탐색기 오른쪽 팝업메뉴에 항목 추가 (0) | 2011.12.15 |
댓글