AGB  ·  Datenschutz  ·  Impressum  







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

Listen vergleichen

Ein Thema von napsterxx · begonnen am 1. Jun 2007 · letzter Beitrag vom 1. Jun 2007
Antwort Antwort
napsterxx

Registriert seit: 18. Mär 2007
Ort: Borland
556 Beiträge
 
Delphi 7 Enterprise
 
#1

Listen vergleichen

  Alt 1. Jun 2007, 12:51
So leutz,
Listen Problem. Ich habe 3 Listboxen. In der einen Stehen Verschiedene Namen : Thorsten, Christop ... ! in einer anderen stehen ebenfalls Namen: Thorsten, Christop, Sabine .... Ich möchte nun das verglichenwird, welche Einträge sowohl in der ersten als auch in der zweiten Listbox vorhanden sind. und diese Einträge sollen dann in die dritte Listbox gepackt werden. Wie geht das. Angefangen habe ich so:

Delphi-Quellcode:
for Int := 0 to Form1.ListBox2.Items.Count-1 do
 Form1.Listbox2.ITems.IndexOf()
Bis mir klar wurde:

Junge so geht das irgendwie nicht. Deshalb frage ich jetzt hier
Du derefernzierst p2 einmal und weißt die Adresse von i zu. Das heißt p2 (also der Zeiger auf einen Zeiger) zeigt auf den Zeiger p1 welchen du so auf i zeigen lässt.
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.768 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: Listen vergleichen

  Alt 1. Jun 2007, 12:58
Das könnte ich mir so vorstellen:

Delphi-Quellcode:
for i:=0 to Listbox1.items.cont -1 do
  begin
    gefunden:=false;
    for j:=0 to Listbox2.items.count -1 do
      begin
        if Listbox1.items[i] = Listbox2.items[j] then
          gefunden:=true;
      end;
    if gefunden then
      // copy listbox1.items[i] -> listbox3
  end;
oder
Delphi-Quellcode:
for i:=0 to Listbox1.items.count -1 do
  if listbox2.items.indexof(Listbox1.items[i]) > -1 then
    // add listbox1.items[i] -> listbox3
Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
Benutzerbild von chrisw
chrisw

Registriert seit: 11. Jan 2005
Ort: Schleswig
193 Beiträge
 
Delphi XE8 Professional
 
#3

Re: Listen vergleichen

  Alt 1. Jun 2007, 13:03
Ich denke so:
Delphi-Quellcode:
for i := 0 to ListBox1.Count -1 do
  if ListBox2.Items.IndexOf(ListBox1.Items[i]) <> -1 then ListBox3.Items.Add(ListBox1.Items[i]);
Christian Wahl
me, myself and I, die lustigen Drei !!
  Mit Zitat antworten Zitat
napsterxx

Registriert seit: 18. Mär 2007
Ort: Borland
556 Beiträge
 
Delphi 7 Enterprise
 
#4

Re: Listen vergleichen

  Alt 1. Jun 2007, 13:48
N1 Funtzt perfekt THX
Du derefernzierst p2 einmal und weißt die Adresse von i zu. Das heißt p2 (also der Zeiger auf einen Zeiger) zeigt auf den Zeiger p1 welchen du so auf i zeigen lässt.
  Mit Zitat antworten Zitat
s-off
(Gast)

n/a Beiträge
 
#5

Re: Listen vergleichen

  Alt 1. Jun 2007, 13:49
Letzteres Beispiel ist wohl die performantere Lösung.

Edit: Hat sich dann wohl erledigt.
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#6

Re: Listen vergleichen

  Alt 1. Jun 2007, 13:53
Hallo,

ich würde versuchen die visuellen Aspekte außen vor zu lassen:

Delphi-Quellcode:
procedure IntersectStrings(sResult, s1, s2: TStrings);
var
  i: Integer;
begin
  sResult.BeginUpdate;
  sResult.Clear;
  for i := 0 to Pred(s1.Count) do
    if s2.IndexOf(s1[i]) >= 0 then
      sResult.Add(s1[i]);
  sResult.EndUpdate;
end;
Das ist die Vorgehensweise von Christian, nur dass sie keine Referenz auf visuelle Komponenten mehr enthält. Man kann dann so mit sortierten oder Hash-Listen Performanzgewinne realisieren.

Grüße vom marabu
  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 00:20 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