Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Library: VCL / WinForms / Controls (https://www.delphipraxis.net/24-library-vcl-winforms-controls/)
-   -   Delphi MemoBox: Funktionen zum finden und ersetzen von strings (https://www.delphipraxis.net/4601-memobox-funktionen-zum-finden-und-ersetzen-von-strings.html)

ssach 5. Mai 2003 22:03


MemoBox: Funktionen zum finden und ersetzen von strings
 
hy,
stelle ein paar simple prozeduren zum finden und ersetzen von stringsin TMemo
Zuerst das finden und markieren von strings :

Delphi-Quellcode:
procedure FindMemo(var mem : TMemo; S : string);
var
  COUNTER : integer;
  FOUND : boolean;
begin
  FOUND := false;
  COUNTER := 1;
  while (COUNTER <= length(mem.Lines.Text) - length(S)) AND (FOUND = false) do
  begin
    if copy(mem.Lines.Text,COUNTER,length(S)) = S then
    begin
      FOUND := true;
      mem.SelStart := COUNTER - 1;
      mem.SelLength := length(S);
    end else
      COUNTER := COUNTER + 1;
    end;
  mem.SelStart := COUNTER - 1;
  mem.SelLength := length(S);
end;
dann ersetzen

Delphi-Quellcode:
procedure ReplaceMemo(var mem : TMemo; S,R : string);
var
  COUNTER : integer;
  TEXT : string;
begin
  COUNTER := 1;
  while (COUNTER <= length(mem.Lines.Text) - length(S)) do
  begin
    if copy(mem.Lines.Text,COUNTER,length(S)) = S then
    begin
      TEXT := mem.Lines.Text;
      delete(TEXT,COUNTER,length(S));
      insert(R,TEXT,COUNTER);
      COUNTER := COUNTER + 1;
      mem.SelStart := COUNTER - 1;
      mem.Sellength := length(R);
      mem.Lines.Text := TEXT;
    end else
      COUNTER := COUNTER + 1;
  end;
end;
in den nachsten tagen wede ich das thema ueberarbeiten und erklaereungen zu den einzelnen schritten geben!

cu :witch:

[edit=Matze]Code formatiert. Mfg, Matze[/edit]


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:27 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz