Autor Beitrag
nanashi
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 31



BeitragVerfasst: So 22.11.09 13:36 
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:
ausblenden 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 user profile iconNarses: Titel geändert.
Moderiert von user profile iconNarses: Delphi-Tags hinzugefügt
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19315
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: So 22.11.09 13: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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 31



BeitragVerfasst: So 22.11.09 14: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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2021
Erhaltene Danke: 6

Win XP Prof
C# 2.0 (#D für NET 2.0, dazu Firebird); früher Delphi 5 und Delphi 2005 Pro
BeitragVerfasst: So 22.11.09 15: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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 31



BeitragVerfasst: So 22.11.09 15: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!! ^__^