Entwickler-Ecke

Sonstiges (Delphi) - Doppelte Werte löschen?


valherf - So 13.02.11 16:24
Titel: Doppelte Werte löschen?
Hallo,

Habe ein Memo, in das verschiedene Werte geschrieben werden... Jetzt möchte ich aber, dass wenn in dem Feld ein Wert doppelt vorkommt, er alle Werte die Doppelt sind löscht. Also aus

Meier
Meier
Schmidt
Meier
Schmidt
Paulus

soll werden:

Meier
Schmidt
Paulus


Xion - So 13.02.11 17:23

1. Sortiere die Daten
2. Gehe per Schleife durch und überspringe jeweils die mehrfachen beim auslesen.

Hast du nicht irgendwie ne Datenbank im Hintergrund? Die kann das nämlich mit "Select Distinct ..." ;)


Marc. - So 13.02.11 17:27

Drei Möglichkeiten, dir mir spontan einfallen:

Liste sortieren. Anschließend durchiterieren und den n-ten mit dem n+1-ten String vergleichen. Sind die Werte unterschiedlich, String in eine zweite Liste einfügen respektive String aus der Liste löschen.
Als Liste bietet sich beispielsweise die TStringList an, die zum Sortieren QuickSort() nutzt.

Liste sortieren, aber Sortieralgorithmus (z.B. Quicksort) selbst implementieren und den Fall [n] = [n+1] berücksichtigen.

Liste nicht sortieren. Durchiterieren und den String mit bereits gefunden (eindeutigen) Strings aus einer zweiten Liste vergleichen. Falls nicht vorhanden, zur zweiten Liste hinzufügen.

Beste Grüße


valherf - So 13.02.11 21:18

keine ahnung wie das gehen soll?

Habt ihr das auch als Code?


elundril - So 13.02.11 21:22

Klar, hier in der Meta-Fassung des Codes:

Christians Crashkurs [http://www.christian-stelzmann.de/index_tutorials_crashkurs.html]
Delphi-Wikibook [http://de.wikibooks.org/wiki/Programmierkurs:_Delphi]

lg elundril