C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 팁&트릭
C++Builder Programming Tip&Tricks
[929] 소스코드 템플릿(Template) 사용하기
크레브 [kkol] 12507 읽음    2009-11-11 00:04
코딩을 하다가보면 자주 사용하는 구문이 있습니다.
대표적인 것이 for 루프 구문이죠
for( int i=0 ; i<10 ; i++)
{
}



이런 구문을 입력할 때마다 일일이 손으로 타이핑 하는것보다는
코드 템플릿을 이용해서 간단히 입력하면 아주 편합니다.
또한 자신이 자주 사용하는 템플릿을 등록해 두면 나중에 쓰기 편합니다.

저같은 경우에는 소스를 나누어 주는 split 주석 문과 for루프중에서 j 변수 루프을 템플릿으로 등록해 두고 있습니다.
//------------------------------------------------------

for( int j=0 ; j<10 ; j ++)
{
}



C++빌더6.0에서는 기능은 많지 않았지만 템플릿 만드는것이 텍스트 방식으로 간단했는데..
C++빌더 2007 로 올라가면서 기능은 많이 강력해 졌지만 만들기는 어려워 졌습니다.

어쨌든 기본으로 들어있는 템플릿 소스 코드 보면서 따라하는 방법이 최선인듯 합니다.
우선 템플릿 사용법 부터 차례대로 보시죠
C++Builder 2010 기준입니다.

※ [사용법]

아래 그림과 같이 소스 창에서 CTRL + J 단축키를 누르면 등록된 템플릿 나옵니다.
이 리스트에서 선택해서 [엔터] 치면 소스에 추가됩니다.
빨리 선택할때는 첫글짜를 타이핑하면 거기로 갑니다.
예를 들어 ctrl + j 누르고 f 키를 누르면 for 문 템플릿으로 이동합니다.





※ 새로 만들기
View > Templates 메뉴를 클릭하면 아래와 같은 템플릿 윈도우가 열립니다.
도킹 되어 있다면 오른쪽 아래에 tool palette 위치에 함께 나옵니다.



위 그림에서 + 아이콘들 클릭하면 새로운 템플릿을 등록할 수 있습니다.


가장 중요한것은 위 이미지에서와 같이 language="C" 를 입력 하는 겁니다.
소문자 c로 해도 안되고 꼭 대문자 C로 해야지 CTRL+ J를 누를때 리스트에 나옵니다. 또 중요한 한가지는 처음 만들고 저장 할때에 제대로 대문자 C를 입력하고 저장해야지 잘못 입력했다가 나중에 수정해도 적용이 안되는 문제가 있습니다.
물론 여기에 다른 문자를 입력하면 안됩니다.

원하는 템플릿 내용을 수정하고 저장하면됩니다.



	


위에서 split line이라고 입력한 name 속성이 Ctrl + J 누를때 나오는 키워드입니다.
위 이미지에서 새로 추가 했을때 나오는 템플릿에서 < ![CDATA[]] > 는 point 태그를 쓸때만 사용하고 기본적인 내용을 넣을때는 삭제해 주어야 합니다.
$end$ 마지막에 커서가 이동하는 위치 태그 입니다.

※ 저장 폴더
템플릿 코드들은 xml로 되어 있는데 코드를 저장하는 폴더는 두가지가 있습니다.
하나는 C++빌더에 기본으로 있는 템플릿들이 저장되는 폴더


그리고 사용자가 만드는 템플릿이 저장되는 폴더


굳이 알고 있을 필요는 없습니다만..
사용자 템플릿 저장 폴더는 혹시 나중에 백업 받을 일이 있을때는 유용합니다.



※ 템플릿 버그
* 정상


* 비정상
한 탭만큼 커서가 이동된 상태에서 템플릿을 입력하면 내용 자체에는 문제가 없으나 파란 사각형 위치가 이상해집니다.
한 탭씩 오른쪽으로 갈때마다 파란 사각형이 점점 밀립니다.
버그 인것 같은데.. C++빌더 2010 외에는 테스트 해보지 못했습니다.



※ 템플릿 내용 작성
템플릿 내용 작성은 기본으로 들어있는 템플릿 코드를 보고 따라하는것이 가장 편할 것 같습니다.
모든 문법을 다 설명드리기도 힘들고..
간단히 for 루프 템플릿 코드를 올립니다.
보고 참고하세요

텍스트로 올리면 잘 안나와서 이미지로 캡쳐 올립니다.



※ C++빌더6.0에서는
C++빌더 6.0에서는 Tools > Editor Options 메뉴에 있습니다.



문법도 상당히 간단해서 아래와 같습니다.
for (int i=0; i<|; i++)
{

}

단지 | 문자를 이용해서 템플릿  입력후 마지막으로 커서가 갈 위치를 표시해줍니다.
장성호 [nasilso]   2009-11-11 00:38 X
와우 멋집니다.

point테크로 엘리먼트를 정의하고 $와 $ 사이에 그 name을 써서 code 테크에 기록하네요

$end$는 미리 정의된 엘리먼트 같은데..
이놈은 코드에서 템플릿입력후 Enter키 치니까 가네요(수정후에 가는 곳인것 같습니다.)

$end$ 같이 미리 정의된 다른 엘리먼트도 있을것 같은데....

....
망치 [mangchy]   2009-11-11 08:06 X
대단하십니다. 정말 저도 이게 안되어서 너무너무 불편했었는데...
구글리도 해보고 별짓을 다 해봐도 안되던데...그런 비밀이 있었군요.
일단 해봐야겠어요...감사...
망치 [mangchy]   2009-11-11 08:18 X
흠...해보는데 잘 안되네요...분명히 처음 저장할때 C 코드 입력했거든요...
하여튼 2007이상으로 하면서 제일 불편한게 템플릿인거 같아요...날마다 복사해서 함수 주석 달아야되고...에휴
망치 [mangchy]   2009-11-11 08:20 X
2010에서는 되네요...2007에서는 안되구요....우쓰..아직 2007이 주 개발툴인데...
망치 [mangchy]   2009-11-11 08:22 X
자꾸 댓글달아서 죄송요...2010에서 하고 2010에서 된거 확인하고...다시 2007로 왔는데 메뉴가 보이네요...음핫핫...
어찌되었든 이제 되네요...
망치 [mangchy]   2009-11-11 08:29 X
또 다네요...2007에서 저장된 파일은 ANSI로 저장되었고, 2010에서는 UTF8로 저장되네요...
으 ..왜 지금까지 저장된 XML파일형식을 체크 안해봤을까...
크레브 [kkol]   2009-11-11 08:40 X
템플릿 기능은 아직 모르는것이 너무 많습니다.  태그 사용법이라든지 제대로된 매뉴얼도 못찾겠구요
하나하나씩 주먹구구식으로 시행착오를 거쳐 해보고 있습니다.
위 내용에서도  틀린 내용이 있을 수 있습니다.
크레브 [kkol]   2009-11-11 08:46 X
C++빌더 개발자들이 자기들만 편하게 쓰려고 만든게 아닌가 하는 의구심이 드는군요ㅋㅋ
장성호 [nasilso]   2009-11-13 10:52 X
델파이에도 똑같은 기능이 있으며..  델파이 유저중에 쓰는 사람이 있는것 같은데요..
장성호 [nasilso]   2009-11-25 23:28 X
delphi.about.com에 위 기능 과련 글이 있네요
http://delphi.about.com/od/adptips2006/qt/codetemplate.htm
장성호 [nasilso]   2009-11-26 00:25 X
invoke에  auto , manual , none 세가지가 있네요

none     은 Ctrl+J 클릭하여 템플렛팝업을 뛰워서 선택해야하구요
manual   은 Ctrl+J 는 당연히 되구..  name을 타이핑후에 tab키를 클릭하면 입력이 됩니다.
auto     는 name을 타이핑후에 space를 입력하면 자동입력되구요. 문론 tab이나 ctrl+J도 되구요


장성호 [nasilso]   2009-11-26 01:00 X
아래 위키에 보면 몇가지 유용한 코드템플릿이 소개되어 있네요
http://delphi.wikia.com/wiki/Delphi_Live_Templates

TODO 입력 , 타이핑실수 자동수정 , FreeAndNil 등...
장성호 [nasilso]   2009-11-26 01:02 X
요기엔 코드템플릿을 사용한 잛은 동영상이..
http://www.twodesk.com/castalia/code_templates.html

+ -

관련 글 리스트
929 소스코드 템플릿(Template) 사용하기 크레브 12507 2009/11/11
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.