AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Was ist schneller TComboBox oder TStringlist?

Ein Thema von smart · begonnen am 19. Mär 2005 · letzter Beitrag vom 1. Mai 2005
Antwort Antwort
Seite 4 von 4   « Erste     234
Benutzerbild von Die Muhkuh
Die Muhkuh

Registriert seit: 21. Aug 2003
7.332 Beiträge
 
Delphi 2009 Professional
 
#31

Re: Was ist schneller TComboBox oder TStringlist?

  Alt 20. Mär 2005, 09:31
Was mich jetzt wundert:

Warum brauchen die StringList, etc. mit BeginUpdate und EndUpdate länger, als ohne?
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#32

Re: Was ist schneller TComboBox oder TStringlist?

  Alt 20. Mär 2005, 09:37
weil bei LoadFromFile/LoadFromStream intern schon ein Beginupdate/Endupdate ausgeführt wird. Und wenn man dann zusätzlich noch ein Beginupdate/Endupdate um das ganze schreibt sind das paar Anweisungen mehr.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von smart
smart

Registriert seit: 19. Dez 2004
Ort: Bochum
1.266 Beiträge
 
Delphi 2007 Professional
 
#33

Re: Was ist schneller TComboBox oder TStringlist?

  Alt 20. Mär 2005, 10:07
Guten Morgen!
Zunächst mal vielen Dank, dass Ihr euch so eine Mühe gebt. Die Liste hat tatsächlich 50.000 Einträge. Es können sogar noch welche hinzukommen. Dabei handelt es sich um eine Warenliste. Natürlich gibt es Wege so etwas besser zu lösen(Datenbank), aber das Programm das diese Liste erzeugt ist ein Fremdes Programm.

Das Beispiel von Binärbaum habe ich mal getestet. Das Sortieren und/oder Vergleichen erscheint mir bei Arrays einfacher. Allerdings bin ich noch Delphi- Anfänger und kenne noch nicht viele Lösungswege.
Heike Kretschmann
  Mit Zitat antworten Zitat
Benutzerbild von Jens Schumann
Jens Schumann

Registriert seit: 27. Apr 2003
Ort: Bad Honnef
1.644 Beiträge
 
Delphi 2009 Professional
 
#34

Re: Was ist schneller TComboBox oder TStringlist?

  Alt 20. Mär 2005, 10:09
Zitat von stefan2005:
hi,
ja es wird sicher auch die schnellere Wahl sein, weil sowas:
Delphi-Quellcode:
type
  TRecrd = record
    Int : Integer
  End;
var Recrd : TRecrd;
...
Recrd.Int := 1;
ist ja auf keinen Fall schneller wie sowas:
Delphi-Quellcode:
var Int : Integer
...
Int := 1

cu,
stefan2005
Das halte ich für ein Gerücht. Beide Fälle müssen gleich schnell sein.
Ob Recrd.Int oder Int in beiden Fällen stehen die Adressen der Variablen eindeutig fest.
I come from outer space to save the human race
  Mit Zitat antworten Zitat
Benutzerbild von alcaeus
alcaeus

Registriert seit: 11. Aug 2003
Ort: München
6.537 Beiträge
 
#35

Re: Was ist schneller TComboBox oder TStringlist?

  Alt 20. Mär 2005, 10:18
Zitat von smart:
Das Beispiel von Binärbaum habe ich mal getestet. Das Sortieren und/oder Vergleichen erscheint mir bei Arrays einfacher.
Folgender Test: Zahlen von 50000 bis 1 zeilenweise in Datei schreiben, dann in StringList laden. Anschliessend habe ich die Liste mit .Sort sortiert (WorstCase, da genau umgekehrte Reihenfolge). Die Zeit fuer beide Aktionen betrug grad mal 551 ms (im vergleich zu nur Laden=60ms). Jetzt kommt es natuerlich auf die Laenge jeder Zeit an. Es waere vielleicht hilfreich, wenn du eine "Durchschnittszeile" aus der Datei zeigen koenntest, dann koennen wir mal sehn wie lange das mit den Zeilen braucht.

Greetz
alcaeus
Andreas B.
Die Mutter der Dummen ist immer schwanger.
Ein Portal für Informatik-Studenten: www.infler.de
  Mit Zitat antworten Zitat
Benutzerbild von Jens Schumann
Jens Schumann

Registriert seit: 27. Apr 2003
Ort: Bad Honnef
1.644 Beiträge
 
Delphi 2009 Professional
 
#36

Re: Was ist schneller TComboBox oder TStringlist?

  Alt 20. Mär 2005, 10:18
Zitat von smart:
... Das Sortieren und/oder Vergleichen erscheint mir bei Arrays einfacher. Allerdings bin ich noch Delphi- Anfänger und kenne noch nicht viele Lösungswege.
Wenn Du die Daten in ein Array einlesen möchtest bleibt Dir nur die Wahl eines dyn. Array's.
Jetzt musst Du aber aufpassen. Wenn Du die Daten "direkt" im Array speicherst werden die Daten selbst beim Sortieren im Array hin und her kopiert. Das kann bei Strings ziemlich lange dauern. Deshalb solltest Du im Array lediglich Zeiger auf die Daten speichern. Beim Sortieren werden dann nur die Zeiger kopiert. Das geht schon wesentlich schneller. Wenn Du das alles implementiert hast, hast Du ungefähr die Funktionalität von TList nachgebildet. Deshalb empfehle ich Dir nimm TList. Mit der Methode TList.Sort bekommst Du eine Sortierfunktion dazu.

Wenn Du es so schnell wie möglich haben möchtest müsstest Du auf verkette Listen ausweichen.
I come from outer space to save the human race
  Mit Zitat antworten Zitat
Benutzerbild von smart
smart

Registriert seit: 19. Dez 2004
Ort: Bochum
1.266 Beiträge
 
Delphi 2007 Professional
 
#37

Re: Was ist schneller TComboBox oder TStringlist?

  Alt 20. Mär 2005, 10:26
Also, so sehen die Zeilen aus.

2210019000009;Feingetriebe AS5;179,00 Warennummer, Bezeichnung, Preis.
Heike Kretschmann
  Mit Zitat antworten Zitat
Benutzerbild von alcaeus
alcaeus

Registriert seit: 11. Aug 2003
Ort: München
6.537 Beiträge
 
#38

Re: Was ist schneller TComboBox oder TStringlist?

  Alt 20. Mär 2005, 10:36
Ich hab grad mal die Zeile bei den Zahlen angehaengt (also so: 35924 2210019000009;Feingetriebe AS5;179,00), und das Laden und sortieren hat grad mal 1 Sekunde gedauert. Ich schaetze das ist eine vertretbare Zeit... ComboBox und ListBox habe ich nicht getestet, aber das wird wahrscheinlich viel laenger dauern. Wichtig ist aber, zuerst die Elemente zu laden, und anschliessend zu sortieren. Wenn ich naemlich Sorted auf True setze, und anschliessend lade, dann dauert die Story ganze 4.5 Sekunden.

Greetz
alcaeus
Andreas B.
Die Mutter der Dummen ist immer schwanger.
Ein Portal für Informatik-Studenten: www.infler.de
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#39

Re: Was ist schneller TComboBox oder TStringlist?

  Alt 20. Mär 2005, 14:41
eure Ergebnisse sind echt verblüffend. Insbesondere das mit dem Visible. Vor einiger Zeit hatte ich folgenden Effekt (allerdings bei einem Stringgrid) : 9 Felder aus 2500 Datensätze in 9 Spalten einlesen : 115 Sek. Diese Zeit wäre sogar noch fast egal gewesen, weil es nur um einen Ausdruck ging.

Trotzdem kam es mir zu langsam vor und ich habe folgendes gemacht : vor Lesen der Daten Stringgrid.Hide und danach Stringgrid.Show. Alles andere blieb gleich. Und sieh an, das dauerte noch ganze 1,2 Sek. 99 % der Zeit wurden also im ersten Fall nur für die Anzeige im Stringgrid gebraucht ! Und es kam mir so vor, als hänge das ganze hauptsächlich von der Menge der auszugebenden Zeichen ab. Denn bei gleichen Daten hatte ich nur eine Spalte befüllt und direkt angezeigt und das dauerte ca. 10-20 Sek. Bei 50.000 Zeilen muß das doch mehr ausmachen, als ein paar Millisek. Unterschied, ob sichtbar oder nicht ? Bei Alcaeus war das sichtbare ja einmal sogar schneller. 8)
Gruß
Hansa
  Mit Zitat antworten Zitat
Hallo_Thomas

Registriert seit: 18. Apr 2005
Ort: Dresden
405 Beiträge
 
Delphi 2005 Professional
 
#40

Re: Was ist schneller TComboBox oder TStringlist?

  Alt 1. Mai 2005, 23:14
verkehrt
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 07:21 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