Einzelnen Beitrag anzeigen

DieDolly

Registriert seit: 22. Jun 2018
2.175 Beiträge
 
#6

AW: Zwei Listen filtern Denkproblem

  Alt 28. Mai 2019, 11:34
Ich möchte Städte aus Liste 2 löschen die nicht in Liste 1 sind.

Delphi-Quellcode:
Staedte1 := TStringList.Create;
 Staedte2 := TStringList.Create;
 try
  // Liste 1
  Staedte1.Add('berlin');
  Staedte1.Add('dusseldorf');
  Staedte1.Add('koln');
  Staedte1.Add('nurnberg');

  // Liste 2
  Staedte2.Add('berlin,berlin');
  Staedte2.Add('berlin,dusseldorf');
  Staedte2.Add('berlin,koln');
  Staedte2.Add('berlin,napoli');
  Staedte2.Add('berlin,nurnberg');

  Staedte2.Add('dusseldorf,berlin');
  Staedte2.Add('dusseldorf,dusseldorf');
  Staedte2.Add('dusseldorf,koln');
  Staedte2.Add('dusseldorf,napoli');
  Staedte2.Add('dusseldorf,nurnberg');

  Staedte2.Add('koln,berlin');
  Staedte2.Add('koln,dusseldorf');
  Staedte2.Add('koln,koln');
  Staedte2.Add('koln,napoli');
  Staedte2.Add('koln,nurnberg');

  Staedte2.Add('napoli,berlin');
  Staedte2.Add('napoli,dusseldorf');
  Staedte2.Add('napoli,koln');
  Staedte2.Add('napoli,napoli');
  Staedte2.Add('napoli,nurnberg');

  Staedte2.Add('nurnberg,berlin');
  Staedte2.Add('nurnberg,dusseldorf');
  Staedte2.Add('nurnberg,koln');
  Staedte2.Add('nurnberg,napoli');
  Staedte2.Add('nurnberg,nurnberg');



 finally
  Staedte1.Free;
  Staedte2.Free;
 end;
Bei diesem Beispiel sollen alle Einträge mit napoli aus Staedte2 entfernt werden.

Mein erster kläglicher Versuch
Delphi-Quellcode:
for i := 0 to Staedte1.Count - 1 do
   begin
    StadtListe1 := Staedte1.Strings[i];
    StadtGefunden := False;

    for j := Staedte2.Count - 1 downto 0 do
     begin
      Stadt1 := Staedte2.Strings[j].Split([','])[0];
      Stadt2 := Staedte2.Strings[j].Split([','])[1];

      StadtGefunden := (Stadt1 = StadtListe1) or (Stadt2 = StadtListe1);

      if StadtGefunden then
       Break;
     end;

    if not StadtGefunden then
     ShowMessage(StadtListe1);
   end;
Angezeigt bekomme ich nichts obwohl ich napoli sehen müsste.

Geändert von DieDolly (28. Mai 2019 um 11:48 Uhr)
  Mit Zitat antworten Zitat