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 2 von 4     12 34   
Benutzerbild von phXql
phXql

Registriert seit: 11. Mär 2004
Ort: Mühldorf
824 Beiträge
 
#11

Re: Was ist schneller TComboBox oder TStringlist?

  Alt 19. Mär 2005, 15:30
Zitat von smart:
Vielen Dank für Eure Antworten. Ich glaube die Sache mit den Array’s ist die schnellste. Kann man aber Array’s setzen wenn vorher nicht bekannt ist wie viel man braucht ?
@stefan2005 natürlich Du hast Recht.
Ja, dynamische Arrays.. Dann musst du es aber immer um eins vergrößern, und das braucht wieder zeit...
"Dunkel die andere Seite ist"
"Yoda! Halts Maul und iss deinen Toast!"
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#12

Re: Was ist schneller TComboBox oder TStringlist?

  Alt 19. Mär 2005, 15:30
Zitat von phXql:
Dann musst du es aber immer um eins vergrößern, und das braucht wieder zeit...
Wieso denn das? Ich kann doch Delphi-Referenz durchsuchensetlenght mit jedem beliebeighne Wert aufrufen.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von phXql
phXql

Registriert seit: 11. Mär 2004
Ort: Mühldorf
824 Beiträge
 
#13

Re: Was ist schneller TComboBox oder TStringlist?

  Alt 19. Mär 2005, 15:32
Zitat von Luckie:
Zitat von phXql:
Dann musst du es aber immer um eins vergrößern, und das braucht wieder zeit...
Wieso denn das? Ich kann doch Delphi-Referenz durchsuchensetlenght mit jedem beliebeighne Wert aufrufen.
nein, nicht wegen dem 1s, sondern, wenn man ein array verlängert, wird das ganze array im speicher kopiert, und das braucht seine zeit...
"Dunkel die andere Seite ist"
"Yoda! Halts Maul und iss deinen Toast!"
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#14

Re: Was ist schneller TComboBox oder TStringlist?

  Alt 19. Mär 2005, 15:33
Dann muss man eben etwas schätzen und das Arry so dimensionieren, dass man es nicht so oft machen muss.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von smart
smart

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

Re: Was ist schneller TComboBox oder TStringlist?

  Alt 19. Mär 2005, 15:40
Gibt es bei den Array’s eigendlich eine Grenze (wieviel man erzeugen kann)?
Heike Kretschmann
  Mit Zitat antworten Zitat
Benutzerbild von JasonDX
JasonDX
(CodeLib-Manager)

Registriert seit: 5. Aug 2004
Ort: München
1.062 Beiträge
 
#16

Re: Was ist schneller TComboBox oder TStringlist?

  Alt 19. Mär 2005, 15:48
du kannst dein array füllen bis der speicher voll ist oder (falls das kleiner ist): grenzwert des Integers (2^31 - 1)
falls du das mit erstellen meinst...
Mike
Passion is no replacement for reason
  Mit Zitat antworten Zitat
Benutzerbild von maynard
maynard

Registriert seit: 22. Jun 2004
Ort: Deutschland
72 Beiträge
 
Delphi 7 Enterprise
 
#17

Re: Was ist schneller TComboBox oder TStringlist?

  Alt 19. Mär 2005, 15:56
Tach...

Ich weiß nicht ab welcher Delphiversion es Int64 gibt ... aber da bleiben dir dann 2^63 - 1 Elemente ... und wenn das nicht reicht müsstest du dir eine eigene Klasse zur Behandlung von Zahlen schreiben bzw. da gibts schon fertige und eine eigene Containerklasse wo du dann am besten die Speicherverwaltung selbst übernimmst und es nicht alles mit SetLentgh machst. Aber ich denke mal soviel Aufwand wird in deinem Fall nicht nötig sein!

MfG
"Denkst Du dasselbe wie ich, Pinky?" - "Ich glaube schon, Brain, aber was ist, wenn das Huhn die Strumpfhosen nicht anziehen will...?"
http://www.programmierer-board.de/ph...fc628a1239.jpg
  Mit Zitat antworten Zitat
Benutzerbild von smart
smart

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

Re: Was ist schneller TComboBox oder TStringlist?

  Alt 19. Mär 2005, 16:05
Nein, so eine Größe brauche ich natürlich nicht. Die Liste die ich einlesen muss ist so um die 50.000 Zeilen lang und kann erweitert werden. Ich habe eben nach einer Möglichkeit gesucht, diese schnell einzulesen und zu sortieren.
Heike Kretschmann
  Mit Zitat antworten Zitat
Benutzerbild von Binärbaum
Binärbaum

Registriert seit: 19. Jan 2005
Ort: Elstra
764 Beiträge
 
Delphi 7 Enterprise
 
#19

Re: Was ist schneller TComboBox oder TStringlist?

  Alt 19. Mär 2005, 20:55
Zitat von smart:
Nein, so eine Größe brauche ich natürlich nicht. Die Liste die ich einlesen muss ist so um die 50.000 Zeilen lang und kann erweitert werden. Ich habe eben nach einer Möglichkeit gesucht, diese schnell einzulesen und zu sortieren.
Dann kann man ja vor dem Einlesen die Länge des Arrays auf 50.000 setzen und dann beim Einlesen stets eine Variable hochzählen lassen, die die bisher gelesenen Zeilen zählt. Wenn die Zahl dann 50.000 erreicht hat, kann man die Arraygröße ja nochmal erhöhen. Man müsste aber auch nach dem Einlesen das Array wieder verkleinern, wenn nicht die vollen 50.000 Zeilen benutzt wurden. Das ist dann auf alle Fälle schneller, als wenn man für jede Zeile SetLength aufrufen muss.

MfG
Binärbaum
There are exactly 10 kinds of people: those who understand binary, and those who don't.
---
"Software reift beim Kunden. Bei Hardware ist es anders: Hardware fault beim Kunden." - Rainer G. Spallek
  Mit Zitat antworten Zitat
Hansa

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

Re: Was ist schneller TComboBox oder TStringlist?

  Alt 20. Mär 2005, 01:40
Zitat von Luckie:
Dann muss man eben etwas schätzen und das Arry so dimensionieren, dass man es nicht
so oft machen muss.
Ist das Dein Ernst ? Nene, so gehts nicht. Bzw. kann man eine solche Vorgehensweise keinem empfehlen. @Luckie : das hat jetzt mit Dir nichts zu tun, aber schätzen, das geht nicht bei 50.000 Einträgen. Und irgendwas auf false zu setzen (wer war das ? ) und zweckentfremdet einzusetzen ist es auch nicht.

Deshalb stellen sich erst mal folgende Fragen :

1. ist die Zahl 50.000 nahezu konstant ? Sagen wir mal, zwischen 45.000 und 50.200 ? Falls ja, dann muß man eben nur 5.700 mal ein dynamisches Array abändern oder den Speicher gleich unnötig hoch verbruzeln.

2. Wo kommen die 50.000 Zeilen her ? Von Hand eingegeben wohl nicht. 8) Muß das etwa zeilenweise von der Platte gelesen werden ? Dann bräuchte man sich nicht zu wundern, wenn es dauert.

Deshalb : für so was sind dynamische Datenstrukturen gemacht (verkettete Listen -> Zeiger). Genau für solche Fälle. Fügt man immer nur das ein, was tatsächlich gebraucht wird und schreibt man allgemeingültige Prozeduren dafür, dann ist es fast egal ob es sich um 100 oder 500.000 Einträge handelt.
Gruß
Hansa
  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 15:13 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