Delphi-PRAXiS

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

MarLe 22. Feb 2005 13:10


filtern ohne Duplikate
 
In einer Stringliste hab ich z.B. folgende Einträge:

Test1_in
Test1_out
Test2_in
Test2_out
Test2_max
Test3_in
Test3_out
Test3_min

Aus dieser Liste will ich jetzt nur

Test1
Test2
Test3

die ersten 5 Zeichen holen ohne Duplikate.

Mein Code funktioniert zwar, aber wenn die Testreihen sich erhöhen
wird der Code immer unübersichtlicher.
Hat vielleicht jemand eine Idee wie man das "filtern" eleganter lösen kann???

Delphi-Quellcode:
var
  service1: array[0..2] of string;
  service2: array[0..2] of string;
  service3: array[0..2] of string;
  sl1: TStringList;
  i: integer;
  xyz: string;

...

  for i := 0 to sl1.Count-1 do
  begin
    xyz := copy(sl1[i],0,5); // damit hol ich mir die ersten 5 Zeichen
    if service1[0] = '' then
      service1[0] := xyz;
    if (service2[0] = '') and (xyz <> service1[0]) then
      service2[0] := xyz;
    if (service3[0] = '') and (xyz <> service1[0]) and (xyz <> service2[0]) then
      service3[0] := xyz;
  end;

AndreasG 22. Feb 2005 13:25

Re: filtern ohne Duplikate
 
Ich wuerde mir eine 2. Stringliste erzeugen und jeweils die ersten 5 Zeichen hinzuadden.

Delphi-Quellcode:
sort := TStringList.Create;
sort.Sorted := True;
sort.Duplicates := dupIgnore;

sort.Add(wert);

sort.Free;
sort.Duplicates := dupIgnore verhindert, dass du Duplikate bekommst.

MarLe 22. Feb 2005 13:50

Re: filtern ohne Duplikate
 
Danke, funktioniert.


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