AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein TMemo und Tstringlist Datenübergabe beschleunigen?
Thema durchsuchen
Ansicht
Themen-Optionen

TMemo und Tstringlist Datenübergabe beschleunigen?

Ein Thema von p80286 · begonnen am 9. Jul 2013 · letzter Beitrag vom 9. Jul 2013
Antwort Antwort
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#1

TMemo und Tstringlist Datenübergabe beschleunigen?

  Alt 9. Jul 2013, 12:15
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
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Benutzerbild von Olli73
Olli73

Registriert seit: 25. Apr 2008
Ort: Neunkirchen
741 Beiträge
 
#2

AW: TMemo und Tstringlist Datenübergabe beschleunigen?

  Alt 9. Jul 2013, 12:55
Ich hatte mal vor Jahren (mit Delphi <= 7 ?) die Erfahrung gemacht, dass ein

Memo1.Lines.Text := Liste.Text;

deutlich schneller war als ein

Memo1.Lines.assign(Liste);
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.453 Beiträge
 
Delphi 12 Athens
 
#3

AW: TMemo und Tstringlist Datenübergabe beschleunigen?

  Alt 9. Jul 2013, 13:10
Ich hatte mal vor Jahren (mit Delphi <= 7 ?) die Erfahrung gemacht, dass ein

Memo1.Lines.Text := Liste.Text;

deutlich schneller war als ein

Memo1.Lines.assign(Liste);
Das gilt immer noch.

Ein Memo1.Lines := Liste oder Memo1.Lines.Assign(Liste) arbeitet jede Zeile einzeln ab, während ein Memo1.Lines.Text := Lines.Text das alles mit einem einzigen Aufruf der WinApi erledigt.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Benutzerbild von Olli73
Olli73

Registriert seit: 25. Apr 2008
Ort: Neunkirchen
741 Beiträge
 
#4

AW: TMemo und Tstringlist Datenübergabe beschleunigen?

  Alt 9. Jul 2013, 13:15
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.
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#5

AW: TMemo und Tstringlist Datenübergabe beschleunigen?

  Alt 9. Jul 2013, 13:24
Danke, das war's.
Das .Assign hab ich mir angewöhnt, weil bei .Text=.Text "Krüppelzeilen" unter den Tisch fallen.

Vielen Dank noch einmal!

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:20 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