Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Delphi - sortierte Liste ohne Duplikate (https://www.delphipraxis.net/71140-delphi-sortierte-liste-ohne-duplikate.html)

hosti 9. Jun 2006 13:36


Delphi - sortierte Liste ohne Duplikate
 
Hallo,

ich hoffe meine Frage ist leicht zu beantworten. Ich habe jetzt einige Zeit im Internet gesucht, habe aber leider nicht wirklich eine brauchbare Lösung gefunden.

Gibt es in Delphi eine bereitgestellte Datenstruktur für eine sortierte Liste ohne Duplikate?

Ich benötige ein Liste der folgenden Form. Zugriff über ID. An die ID angehängt ein Objekt. Sortiert nach ID. Wenn ein neuer Datensatz mit der gleichen ID eingefügt wird -> Exception.

Für eure Hilfe vielen Dank im Vorraus.

MfG Robert

SirThornberry 9. Jun 2006 13:45

Re: Delphi - sortierte Liste ohne Duplikate
 
Die Stringliste kann das.
Delphi-Quellcode:
Stringliste1.Sorted := True;
Stringliste1.duplicates := dupError;

hosti 9. Jun 2006 13:46

Re: Delphi - sortierte Liste ohne Duplikate
 
Danke

Dale 9. Jun 2006 13:48

Re: Delphi - sortierte Liste ohne Duplikate
 
Zitat:

Zitat von SirThornberry
Delphi-Quellcode:
Stringliste1.Sorted := True;
Stringliste1.duplicates := dupError;

wobei die Stringliste natürlich alphanumerisch sortiert.

Gruß Dale

SirThornberry 9. Jun 2006 13:53

Re: Delphi - sortierte Liste ohne Duplikate
 
stimmt, wobei ID ja auch nicht unbedingt für Zahl steht. Aber falls die ID's wirklich zahlen sind sollte man einfach mit 0 davor auffüllen dann stimmt die Sortierung.
Danke für den Hinweis.

Sidorion 9. Jun 2006 13:58

Re: Delphi - sortierte Liste ohne Duplikate
 
Wichtiger noch: sie ist per default caseINsensitiv, sowohl beim Sortieren, als auch beim Einfügen.(zumindest bis D5)

SirThornberry 9. Jun 2006 13:59

Re: Delphi - sortierte Liste ohne Duplikate
 
ist bei den neueren Versionen auch noch so. Wenn man das abändern will muss man das Property "casesensitive" auf true setzen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:32 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