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
반응형
'Delphi Tip > 컴포넌트' 카테고리의 다른 글
Frame을 활용한 간단한 프로그램 예제 (0) | 2025.01.05 |
---|---|
프로그래머라면 알아야 할 Frame 활용의 기본 개념 (0) | 2025.01.04 |
컴포넌튼 만들기(초간단) (0) | 2023.11.29 |
동적으로 메뉴(TMenuItem) 만들고 클릭 이벤트 만들기 (0) | 2023.10.31 |
델파이 콤보박스(TComboBox)의 팝업리스트 가로폭 늘리기 (0) | 2023.10.26 |
댓글