![]() |
Anzeige des Memos beim bearbeiten unterdrücken?
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:
Funktioniert ja, aber wenn das Memo sich ständig neu aktualisieren muss, dauert so ein Filter bei ~80000 Zeilen schonmal 3-7 Minuten ...
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; 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. |
Re: Anzeige des Memos beim bearbeiten unterdrücken?
Vorher:
Delphi-Quellcode:
nachher:
Memo1.Lines.BeginUpdate;
Delphi-Quellcode:
Memo1.Lines.EndUpdate;
|
Re: Anzeige des Memos beim bearbeiten unterdrücken?
Danke !
Funzt super. |
Re: Anzeige des Memos beim bearbeiten unterdrücken?
Zitat:
Du veränderst innerhalb der Schleife dein Memo, dadurch ändert sich die Anzahl/Position der Zeilen. Wenn du eine Zeile löschst, überspringst du die nächste Zeile, da alle Zeilen um eine Zeile aufrücken, du aber durch die Erhöhung von "_i" eine Zeile weiterspringst. |
Re: Anzeige des Memos beim bearbeiten unterdrücken?
@ste_ett: Deine Vermutung ist falsch. Er erhöht den Schleifenzähler nicht sondern arbeitet mit "downto". Somit läuft die schleife rückwärts
|
Re: Anzeige des Memos beim bearbeiten unterdrücken?
Moin !
ebend, das läuft rückwärts ab und funktioniert mit Begin/Endupdate jetzt auch angenehm schnell. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:35 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