Einzelnen Beitrag anzeigen

moelski

Registriert seit: 31. Jul 2004
1.110 Beiträge
 
Delphi 2010 Professional
 
#1

Anzeige des Memos beim bearbeiten unterdrücken?

  Alt 20. Jan 2006, 06:22
Moin!

Ich habe mir da ein kleines Tool gebastelt. Damit kann ich Logfiles laden.
Da in diesen LogFiles immer sehr viele unnütze Zeilen sind, habe ich einen kleinen Filter geschrieben, der nach einer bestimmten Zeichenkette sucht und wenn diese vorhanden ist, die Zeile löscht. Das schaut dann so:
Delphi-Quellcode:
procedure TFormLogFilter.Button1Click(Sender: TObject);
Var _i: Integer;
    _aktuelleZeile: String;
begin
  for _i := Form1.Memo.Lines.Count downto 0 do begin
    if pos(Edit1.Text, Form1.Memo.Lines.Strings[_i]) > 0 then
      Form1.Memo.Lines.Delete(_i);
    if _i mod 100 = 0 then Application.ProcessMessages;
  end;
end;
Funktioniert ja, aber wenn das Memo sich ständig neu aktualisieren muss, dauert so ein Filter bei ~80000 Zeilen schonmal 3-7 Minuten ...
Deshalb mal 2 Fragen:
1) Gibt es evtl. eine bessere Methode um sowas zu realisieren?
2) Kann ich während der Suche die Änderungen im Memo unterdrücken? Also so das da erstmal nix passiert? Erst zum Schluss dann wieder freigeben und man sieht den "neuen" gefilterten Text.
Dominik Schmidt
Greetz Dominik

I love Delphi 2007/2010
  Mit Zitat antworten Zitat