지난해에 약간의 Java 코드를 델파이로 포팅하던 도중에 StringBuilder를 String에다가 더하는 코드로 바꾸느라 손꾸락이 아팠었다.
우연찮게 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는 쉽게 문자열을 구성할때 쓰는게 좋을듯 싶은데.

+ Recent posts