AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

TStringlist Duplikate verhindern

Ein Thema von youuu · begonnen am 27. Jun 2009 · letzter Beitrag vom 27. Dez 2009
Antwort Antwort
youuu

Registriert seit: 2. Sep 2008
Ort: Kleve
822 Beiträge
 
Delphi 2010 Professional
 
#1

TStringlist Duplikate verhindern

  Alt 27. Jun 2009, 22:21
Hi,

Ich möchte alle Duplikate aus einer Stringlist löschen, habe etwas von DupIgnor gelesen aber irgendwie versteh ich das noch nicht, kann mir jemand das mal erklären?

Anmerkung: Duplicates wirkt sich nur aus, wenn das Array sortiert ist.

Nur Sortiert möchte ich es nicht wirklich haben, da die Einträge an ihrer Position schon richtig stehen und dadurch durch einander gewirbelt werden ;/
Steven
  Mit Zitat antworten Zitat
fnhofm

Registriert seit: 16. Mär 2006
Ort: Nürnberg
25 Beiträge
 
Delphi XE2 Professional
 
#2

Re: TStringlist Duplikate verhindern

  Alt 27. Jun 2009, 22:26
Hi,

du kannst mit der Eigenschaft Duplicates in einer sortierten (Eigenschaft Sorted auf True) StringList bestimmen wie Duplikate behandelt werden sollen.
Du kannst sie akzepieren (dupAccept), einen Fehler veruhrsachen (dupError) oder sie Ignorieren (dupIgnore).

Hoffe das hilft weiter.

Gruß


Flo

[Edit]
Lese grade das Du die Liste unsortiert willst.

Dann hilft Dir dass ja nicht. Ich denke dann musst Du das selber beim einfügen prüfen.

Das könntest Du mit IndexOf() machen, wenn -1 zurückgegeben wird ist der String noch nicht in der Liste.
[/Edit]
  Mit Zitat antworten Zitat
youuu

Registriert seit: 2. Sep 2008
Ort: Kleve
822 Beiträge
 
Delphi 2010 Professional
 
#3

Re: TStringlist Duplikate verhindern

  Alt 27. Jun 2009, 22:51
danke IndexOf() hat geklappt
Steven
  Mit Zitat antworten Zitat
quendolineDD

Registriert seit: 19. Apr 2007
Ort: Dresden
781 Beiträge
 
Turbo Delphi für Win32
 
#4

Re: TStringlist Duplikate verhindern

  Alt 28. Jun 2009, 01:35
Oder du hast eine Kopie deiner Liste, welche Sortiert ist und überprüfst, ob das EInfügen eines Eintrages funktioniert.
Denk aber die IndexOf-Variante wird performanter sein. Hab das aber nicht getestet.
Lars S.
Wer nicht mit der Zeit geht, geht mit der Zeit.
  Mit Zitat antworten Zitat
Benutzerbild von stahli
stahli

Registriert seit: 26. Nov 2003
Ort: Halle/Saale
4.343 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: TStringlist Duplikate verhindern

  Alt 27. Dez 2009, 12:26
nachträgliches Löschen mache ich so:

Delphi-Quellcode:
    for I := 0 to SL.Count - 2 do
    begin
      for J := SL.Count - 1 downto I + 1 do
      begin
        if SL[J] = SL[I] then
          SL.Delete(J);
      end;
    end;
Stahli
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:30 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