지난해에 약간의 Java 코드를 델파이로 포팅하던 도중에 StringBuilder를 String에다가 더하는 코드로 바꾸느라 손꾸락이 아팠었다.
우연찮게 SysUtils 유닛을 살펴보다보니 TStringBuilder 클래스가 있네 -_-;
1. 추가
Append, AppendLine, AppendFormat으로 추가한다.
Append에는 다양한 타입을 쓸수 있으니 간편하다.
2. 삽입
Append와 마찬가지로 다양한 타입을 지원하는 Insert가 있다.
3. 삭제
전체를 지우는 Clear와 구간을 삭제할 수 있는 Remove가 있다.
4. 변경
Replace함수를 이용한다.
5. 최종 결과물
ToString을 쓰면 String으로 리턴해준다.
아... 신규 버전들 나오면 추가된 내용을 한번 쭉 살펴봐야 하거늘 ㅠ.ㅜ
괜한 삽질로 고생만 했네.
ps. 성능 이슈
String을 쓰는 것과 TStringBuilder를 쓰는 것에 대해 비교를 해놓은 링크가 있다.
http://blog.marcocantu.com/blog/not_so_fast_tstringbuilder.html
http://www.monien.net/blog/index.php/2008/10/delphi-2009-tstringbuilder
흠.. 그런데 성능 이슈라면 TMemoryStream을 쓰는게 제일 낫지 않나...
TStringBuilder는 쉽게 문자열을 구성할때 쓰는게 좋을듯 싶은데.
우연찮게 SysUtils 유닛을 살펴보다보니 TStringBuilder 클래스가 있네 -_-;
1. 추가
Append, AppendLine, AppendFormat으로 추가한다.
Append에는 다양한 타입을 쓸수 있으니 간편하다.
2. 삽입
Append와 마찬가지로 다양한 타입을 지원하는 Insert가 있다.
3. 삭제
전체를 지우는 Clear와 구간을 삭제할 수 있는 Remove가 있다.
4. 변경
Replace함수를 이용한다.
5. 최종 결과물
ToString을 쓰면 String으로 리턴해준다.
var
Str: TStringBuilder;
begin
Str := TStringBuilder.Create;
try
Str.Append( 100 );
Str.Append( sLineBreak );
Str.AppendLine( '가나다라' );
ShowMessage( Str.ToString );
finally
Str.Free;
end;
아... 신규 버전들 나오면 추가된 내용을 한번 쭉 살펴봐야 하거늘 ㅠ.ㅜ
괜한 삽질로 고생만 했네.
ps. 성능 이슈
String을 쓰는 것과 TStringBuilder를 쓰는 것에 대해 비교를 해놓은 링크가 있다.
http://blog.marcocantu.com/blog/not_so_fast_tstringbuilder.html
http://www.monien.net/blog/index.php/2008/10/delphi-2009-tstringbuilder
흠.. 그런데 성능 이슈라면 TMemoryStream을 쓰는게 제일 낫지 않나...
TStringBuilder는 쉽게 문자열을 구성할때 쓰는게 좋을듯 싶은데.
'Programming > Delphi' 카테고리의 다른 글
[Delphi] TExcelDocument Library - 엑셀없이 xls파일 만들기 (6) | 2011.12.22 |
---|---|
[Delphi] TListView GroupView 시 Group 정렬 (20) | 2011.09.08 |
[Delphi] TDictionary, TObjectDictionary 사용 완료후 아이템 메모리 해제 (2) | 2011.02.17 |
[Delphi] Secondary 모니터에서 Border가 bsNone인 폼 최대화시 문제 (4) | 2011.01.01 |
Delphi - TOpenDialog쓰면서 FileExists로 왜 체크해요? (0) | 2010.03.14 |