![]() |
TStrings-> PERFORMANT! prüfen ob String mehrfach enthalte
Hallo zusammen!
Mittels Indexof() kann ich ja bei TStrings prüfen ob ein bestimmter String vorhanden ist und unter welchem Index er gespeichert ist. In der Delphihilfe steht jedoch, das bei mehrmaligem vorkommen nur das erste vorkommen zuruckgegeben wird. Nun könnte man ja anfanngen eine Schleife zu basteln und das ganze mit Hilfsvariablen lösen. Ich brauche es aber so performant wie irgend möglich! Ich muss auch nur wissen ob der String mehrmals vorkommt, Index usw. brauch ich nicht. Gibt es da eine Möglichkeit? |
Re: TStrings-> PERFORMANT! prüfen ob String mehrfach enth
Wie wäre es mit Sortieren?
Ansonsten nimm einen BTree oder eine Hash-Table. |
Re: TStrings-> PERFORMANT! prüfen ob String mehrfach enth
Hallo
Delphi-Quellcode:
IndexOf macht genau das und bricht ab, wenn der String gefunden wurde.
eine Schleife zu basteln und das ganze mit Hilfsvariablen lösen.
Falls die Daten sortiert sind, könnte man eine binäre Suche machen.
Delphi-Quellcode:
function TStrings.IndexOf(const S: string): Integer;
begin for Result := 0 to GetCount - 1 do if CompareStrings(Get(Result), S) = 0 then Exit; Result := -1; end; |
Re: TStrings-> PERFORMANT! prüfen ob String mehrfach enth
@ Bernhard
Was hat denn Sortieren mit der Ermittlung von mehrfachvorkommen zu tun? Hashtabels will ich nicht verwenden, da dort die eindeutigkeit nicht gegeben ist. Btrees sagt mir jetzt nichts. |
Re: TStrings-> PERFORMANT! prüfen ob String mehrfach enth
Zitat:
|
Re: TStrings-> PERFORMANT! prüfen ob String mehrfach enth
@toms
Du meinst statt des Exit ein Stringlist.delete(index) und dann erneut aufrufen, bis das Ergebnis -1 ist? Richtig? |
Re: TStrings-> PERFORMANT! prüfen ob String mehrfach enth
Zitat:
|
Re: TStrings-> PERFORMANT! prüfen ob String mehrfach enth
@toms
Stimmt, machmal sehe ich den Wald vor lauter Bäumen nicht. ;) |
Re: TStrings-> PERFORMANT! prüfen ob String mehrfach enth
Zitat:
Zitat:
![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:58 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