![]() |
Doppelte Werte aus Memo entfernen
Hallo alle zusammen. Ich habe in einer Memo mehrere Werte pro Zahl eine Zeile ich möchte nun gerne doppelte Werte aus der Memo löschen. Würde mich sehr freuen wenn mir jemand sagen könnte wie das geht.
Danke im Vorraus Crazymodder |
Re: Doppelte Werte aus Memo entfernen
Durchgehen und Einträge vergleichen (.IndexOf())
|
Re: Doppelte Werte aus Memo entfernen
könnte das vllt jemand nochmal an einem beispiel zeigen. Es ist ja nicht nur eine Zahl die immer doppelt vorkommt sondern immer andere und unterschiedlich anzahl.
Danke würde mich sehr freuen. |
Re: Doppelte Werte aus Memo entfernen
Wie sehen die Einträge aus?
|
Re: Doppelte Werte aus Memo entfernen
Es sind zahlen meinetwegen so
1 5 7 9 1 10 5 7 Die doppelten also 1,5,7 müssten weg aber es können auch andere sein und ach mehr. |
Re: Doppelte Werte aus Memo entfernen
Delphi-Quellcode:
getippt und nicht getestet
For i := Memo.Lines.Count -1 downto 2 do
for j := i-1 downto 1 do begin if Memo.IndexOf( j) = Memo.IndexOf( i) then Memo.Lines.Delete(i); end; |
Re: Doppelte Werte aus Memo entfernen
Mh thx very nett funktioniert
Danke |
Re: Doppelte Werte aus Memo entfernen
Bei vielen Einträgen wäre es sicher schneller, wenn man den Memo-Text in eine StringList kopiert, darin die Filterung der Einträge vornimmt und in einem Rutsch zurück ins Memo kopiert, anstelle in jedem Schleifendurchgang direkt mit der VCl zu arbeiten. Bei wenigen Einträgen macht sich der Unterschied jedoch kaum bemerktbar, sind es relativ viele, dann hingegen schon.
|
Re: Doppelte Werte aus Memo entfernen
Für Notfälle:
Delphi-Quellcode:
Gruß Hawkeye
procedure RemoveDuplicates (aList: TStrings);
var i : Integer; begin aList.BeginUpdate; try for i := aList.Count - 1 downto 1 do if (aList.IndexOf(aList[i]) < i) then aList.Delete (i); finally aList.EndUpdate; end; end; |
Re: Doppelte Werte aus Memo entfernen
Super thx super nett für die Hilfe hgab es jetzt erst in StringList kopieren lassen und dann sortieren und zurück super nice thx very much.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:47 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