Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   TMemo und Tstringlist Datenübergabe beschleunigen? (https://www.delphipraxis.net/175679-tmemo-und-tstringlist-datenuebergabe-beschleunigen.html)

p80286 9. Jul 2013 11:15

TMemo und Tstringlist Datenübergabe beschleunigen?
 
Hallo zusammen,

Ausgangssituation ist ein TMemo was einige Tausend Zeilen enthält.
Zur Verarbeitung wir es in eine Stringliste kopiert, gelöscht und diese nach der Verarbeitung wieder in das Memo zurück kopiert.
Ausgerechnet der letzte Schritt dauert "ewig" was mach ich da falsch?

Delphi-Quellcode:
  Memo1.lines.BeginUpdate;
  Liste.assign(Memo1.Lines);
  Memo1.Lines.Clear;
  for i:=liste.Count-1 downto 0 do begin
    (* machwas z.b.
      if pos(text,Liste[i])>0 then
        Liste.delete(i);
     *********************** *)
  end;
  Memo1.Lines.assign(Liste);
  Memo1.lines.EndUpdate;
Gruß
K-H

Olli73 9. Jul 2013 11:55

AW: TMemo und Tstringlist Datenübergabe beschleunigen?
 
Ich hatte mal vor Jahren (mit Delphi <= 7 ?) die Erfahrung gemacht, dass ein

Delphi-Quellcode:
Memo1.Lines.Text := Liste.Text;


deutlich schneller war als ein

Delphi-Quellcode:
Memo1.Lines.assign(Liste);

Uwe Raabe 9. Jul 2013 12:10

AW: TMemo und Tstringlist Datenübergabe beschleunigen?
 
Zitat:

Zitat von Olli73 (Beitrag 1221229)
Ich hatte mal vor Jahren (mit Delphi <= 7 ?) die Erfahrung gemacht, dass ein

Delphi-Quellcode:
Memo1.Lines.Text := Liste.Text;


deutlich schneller war als ein

Delphi-Quellcode:
Memo1.Lines.assign(Liste);

Das gilt immer noch.

Ein
Delphi-Quellcode:
Memo1.Lines := Liste
oder
Delphi-Quellcode:
Memo1.Lines.Assign(Liste)
arbeitet jede Zeile einzeln ab, während ein
Delphi-Quellcode:
Memo1.Lines.Text := Lines.Text
das alles mit einem einzigen Aufruf der WinApi erledigt.

Olli73 9. Jul 2013 12:15

AW: TMemo und Tstringlist Datenübergabe beschleunigen?
 
Zitat:

Zitat von Uwe Raabe (Beitrag 1221232)
Das gilt immer noch.

Danke, gut zu wissen, dass es immer noch so ist.

Ich hatte mir damals die "schnellere" Variante angewöhnt und daher auch keine Probleme mehr.

p80286 9. Jul 2013 12:24

AW: TMemo und Tstringlist Datenübergabe beschleunigen?
 
Danke, das war's.
Das
Delphi-Quellcode:
.Assign
hab ich mir angewöhnt, weil bei
Delphi-Quellcode:
.Text=.Text
"Krüppelzeilen" unter den Tisch fallen.

Vielen Dank noch einmal!

Gruß
K-H


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:57 Uhr.

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