![]() |
Optimierung Code / Alternative zu Stringlist? (Delphi 5)
Liebe Leute,
ich habe eine Liste mit mehr als 7 Mio Einträgen (Strings/einzelne Wörter), die ich gerne gruppieren und zählen würde. Derzeit habe ich das mit einer Stringlist realisiert:
Delphi-Quellcode:
Mein Problem: Das ist VIEL zu langsam. Gibt es irgendeine Möglichkeit, den Code zu optimieren oder eine Alternative zu TStringlist, die einfach schneller arbeitet?
Procedure GruppiereZaehleListe(Quellliste, Ziellist: tstringlist);
var i: integer; CurIndex: integer; begin for i:= 0 to Quellliste.count-1 do begin CurIndex := Ziellist.IndexOf(Quellliste[i]); if CurIndex >= 0 then Ziellist.Objects[CurIndex] := TObject(Succ(Integer(Ziellist.Objects[CurIndex]))) else Ziellist.AddObject(Quellliste[i], TObject(1)); end; end; - Habe nur D5 zur Verfügung (ich weiß, alt). Danke und beste Grüße, frieder |
AW: Optimierung Code / Alternative zu Stringlist? (Delphi 5)
|
AW: Optimierung Code / Alternative zu Stringlist? (Delphi 5)
Eventuell sollte man sich auch über die 7 Mio Einträge Gedanken machen.
|
AW: Optimierung Code / Alternative zu Stringlist? (Delphi 5)
Zitat:
- Die 7 Mio Einträge resultieren aus einem großen Textkorpus mit ~11000 Texten, tokenisiert. Da kann ich schlecht einen Teil 'auslagern' ;) Danke und Gruß, frieder |
AW: Optimierung Code / Alternative zu Stringlist? (Delphi 5)
Ein HashMap ist ein Art Index der auf HashWerten der Daten basiert
|
AW: Optimierung Code / Alternative zu Stringlist? (Delphi 5)
zum einen würde ich Dir für das Suchen die Binäre Suche empfehlen, zum anderen, wenn ich das richtig gesehen habe, dann fügst Du nicht vorhandene Datensätze ein, wie wäre es dann mit:
Delphi-Quellcode:
Grußzielliste.Sorted:=true; zielliste.Duplicates:=Dupignore; {not found} zielliste.add(quellliste[i]); K-H |
AW: Optimierung Code / Alternative zu Stringlist? (Delphi 5)
Es gibt da auch noch die THashedStringList, aber ich weiss nicht ab welcher Delphi-Version.
|
AW: Optimierung Code / Alternative zu Stringlist? (Delphi 5)
Zitat:
Gruß, frieder |
AW: Optimierung Code / Alternative zu Stringlist? (Delphi 5)
Zitat:
Danke und Gruß, frieder |
AW: Optimierung Code / Alternative zu Stringlist? (Delphi 5)
Zitat:
(man könnte vllt. dupError nutzen und dann in der Exceptionbehandlung zählen..??) [bitte nicht schlagen!] Gruß K-H |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:48 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz