Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Delphi Listboxen vergleichen (https://www.delphipraxis.net/170708-listboxen-vergleichen.html)

Captnemo 29. Sep 2012 18:57

AW: Listboxen vergleichen
 
Zitat:

Zitat von Popov (Beitrag 1185005)
Zitat:

Zitat von Captnemo (Beitrag 1184999)
das "downto" würde ich diese Stelle verwenden, weil ...

Auch wenn es die Höflichkeit gebietet in der Kommunikation immer die Ich-Form zu wählen um den Gegenüber nicht vor den Kopf zu stoßen, wie z. B. "würde ich", ändert es nichts daran, dass hier ein "musst du" angebracht ist, denn es gibt nur die eine Variante. Alles andere führt zum Knall ;)

Naja, rein theoretisch kann er ja auch die Items erst einmal in einer weiter StringList speichern, um später damit zu arbeiten, und die Elemente in den ListBoxen noch so lassen. In dem Fall wäre es egal. Ich habe das ganze halt nur der Form halber erläutert.

Popov 29. Sep 2012 19:00

AW: Listboxen vergleichen
 
... kleiner Fehler. Code mal kurz entfernt...

@Captnemo

War ja keine Kritik.

Captnemo 29. Sep 2012 19:00

AW: Listboxen vergleichen
 
Zitat:

Zitat von Paulh (Beitrag 1185003)
Habe es jetzt mit einer 3. Listbox versucht und es kommt aber immer noch ein mischmasch raus :(

Delphi-Quellcode:
for i := Listbox1.items.count-1 downto 0 do begin
  if NOT (Listbox2.items.indexof(Listbox1.items[i])=-1) then begin
    //if DeleteFile(Listbox1.items[i]) then
      Listbox3.Items.Add(Listbox2.Items[i]);
  end;
end;

Was kommt den raus?
Normalerweise müssten jetzt in listbox3 alle Elemente auftauchen, die sowohl in Listbox1 als auch in Listbox2 sind.
Denk aber daran, dass auch groß und kleinschreibung unterschieden wird. Ggf. noch ein lowercase() einbauen.

Paulh 29. Sep 2012 19:01

AW: Listboxen vergleichen
 
Ich grübe grade darüber nach was ich von den 3 Mengenoperationen verwenden muss, aber ich denke,
wenn ich
Delphi-Quellcode:
DifferenceStrings(Listbox2.Items,Listbox1.Items,Listbox3.Items)
nehmen würde müsste es doch gehen oder ?

Captnemo 29. Sep 2012 19:03

AW: Listboxen vergleichen
 
Zitat:

Zitat von Popov (Beitrag 1185009)
Delphi-Quellcode:
for i := Listbox1.items.count-1 downto 0 do
begin

  if Listbox2.items.indexof(Listbox1.items[i]) = -1 then
    Listbox2.Items.Delete(i);

end;

Genau hier ist ja das downto nicht zwingend notwendig, weil du die Elemente ja nicht in ListBox1 löscht. ;-)

Okay, aber am ende kommt ja alles auf das gleiche raus.

Paulh 29. Sep 2012 19:04

AW: Listboxen vergleichen
 
Okey jetzt gehts, O.o komisch...

Aber danke an alle !
..war schon wieder am verzweifeln..

Captnemo 29. Sep 2012 19:05

AW: Listboxen vergleichen
 
Zitat:

Zitat von Paulh (Beitrag 1185011)
Ich grübe grade darüber nach was ich von den 3 Mengenoperationen verwenden muss, aber ich denke,
wenn ich
Delphi-Quellcode:
DifferenceStrings(Listbox2.Items,Listbox1.Items,Listbox3.Items)
nehmen würde müsste es doch gehen oder ?

Also ganz ehrlich. Ich würde an deiner Stelle jetzt nicht den Code aus DifferenceStrings kopieren.

Die von dir gestellt Aufgabe ist so einfach, dass du dir selbst einen Gefallen tust, wenn diesen zweizeiler selber entwirfst, und am ende auch verstehst, wo wie ich und popov es dir vorgeschlagen haben.

Paulh 29. Sep 2012 19:08

AW: Listboxen vergleichen
 
Ja,okey habe aber auch schon lange nichts mehr mit Delphi gemacht...

Habs jetzt auch so hin bekommen.

Captnemo 29. Sep 2012 19:17

AW: Listboxen vergleichen
 
Ja, manchmal beißt man sich an einfachsten Sachen fest. Kein Problem.

sx2008 29. Sep 2012 19:43

AW: Listboxen vergleichen
 
Zitat:

Zitat von Captnemo (Beitrag 1185004)
Und was ist jetzt daran einfacher?

Man braucht nur eine Prozedur (getestet und wiederverwendbar) aufrufen anstatt unschönen Code einzubauen.
Mit "unschön" meine ich jetzt z.B. das fehlende BeginUpdate/EndUpdate.
Unschön ist natürlich auch keine Unter-Funktion/Prozedure zu verwenden.


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:46 Uhr.
Seite 2 von 3     12 3      

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