Entwickler-Ecke
Algorithmen, Optimierung und Assembler - Optimierung beim einlesen einer txt-Datei
nanashi - So 22.11.09 12:36
Titel: Optimierung beim einlesen einer txt-Datei
Hallo,
als erstes möchte ich mich entschuldigen, falls dieses Thema schonmal genannt wurde und ich es übersehen haben sollte.
2. Das Problem:
Ich schreibe zu Zeit an einem Wörterbuch (englisch-deutsch/deutsch-englisch) und habe eine Textdaitei mit rund 50000 Vokabeln. Diese möchte ich gleich zu Beginn des Programms, sprich durch OnCreate, von einer ListBox einlesen lassen und alphabetisch sortieren.
Allerdings braucht das Programm bei meiner Variante für diese 50000 Wortgruppen rund 2 Minuten.
Hat jemand eine Idee, wie ich das in rund 10 Sekunden oder schneller hinbekommen kann?
Meine Variante:
Delphi-Quelltext
1: 2: 3: 4: 5:
| procedure TForm1.FormCreate(Sender: TObject); begin ListBox1.Items.LoadFromFile('vokabeleng.txt'); ListBox1.Sorted:=True; end; |
P.s. Ich benutze momentan Delphi 5, falls das eine Rolle spielen sollte.
Vielen Dank schonmal.
Moderiert von
Narses: Titel geändert.
Moderiert von
Narses: Delphi-Tags hinzugefügt
jaenicke - So 22.11.09 12:58
Hallo und :welcome: im Forum!
Nimm statt der ListBox einfach eine TStringList im Hintergrund, lade die Vokabeln da rein und zeige in der ListBox nur einen Teil davon an. Die kompletten 50.000 kann doch ohnehin niemand darin überblicken.
Auf diese Weise dauert das vielleicht nen paar Millisekunden.
nanashi - So 22.11.09 13:59
Danke! Das mit der TStringList klingt erstma sehr gut. Ich werd versuchen es umzusetzen.
Ich hab allerdings bis jetzt noch nie mit einer TStringList gearbeitet und suche gerade fleißig.
Kannst du mir vielleicht sagen wo ich das bei Delphi 5 finde (?), denn wenn ich das bei der Suchfunktion der Komponenten eingebe findet er immer nur TListBox oder TStringGrid, aber keine TStringList. v.v
JüTho - So 22.11.09 14:07
TStringList ist kein Control, sondern "nur" eine Klasse. Es wird ausschließlich manuell per Code benutzt, aber nicht im Designer.
Die Hilfe reagiert dennoch darauf, wenn du es im Code-Fenster markierst und F1 drückst.
Gruß Jürgen
nanashi - So 22.11.09 14:17
Ach so, gut zu wissen.^^
Ich denke mal damit dürfte ich das Problem lösen können.
Vielen Dank für eure Hilfe!! ^__^
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!