본문 바로가기
Delphi Tip/컴포넌트

TMemo(메모장) 스트링(string) 입력 속도개선

by MonoSoft 2024. 6. 28.
728x90
반응형

TMemo(메모장) 스트링(string) 입력 속도개선

728x90

 

 

메모장에서 문자를 바꾸거나 할경우 메모장의 내용을

String에 옮긴 다음 해당 작업을 하고

다시 메모장으로 불러들일때 별생각없이 아래와 같이 한다.

 

(예)

iStr:= Memo1.Lines.Text;

iStr:= StringReplace(iStr, 'a', 'b', []) ;

Memo1.Lines.Text:= iStr;

 

그런데 메모장의 내용이 많울 경우(스트링의 크기가 클)에는

Memo1.Lines.Text:= iStr; 에서 엄청 많은 시간을 먹는다.

 

개선방법

 

var iMemStream: TMemoryStream;

iStr: string;

begin

iStr:= Memo1.Lines.Text;

iStr:= StringReplace(iStr, 'a', 'b', []) // 이부분

iMemStream:= TMemoryStram.create;

try

iMemStream.Posi tion:= 0;

iMemStream.WriteBuffer(iStr[1],length(iStr));

iMemStream.Posi tion:= 0;

Memo1.Lines.LoadFromStream(iMemStream);

finally

iMemStream.free;

end;

end;

728x90
반응형

댓글