Delphi-PRAXiS
Seite 3 von 4     123 4      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi String in TObjectList suchen (https://www.delphipraxis.net/182701-string-tobjectlist-suchen.html)

DeddyH 12. Nov 2014 13:16

AW: String in TObjectList suchen
 
Die Vergleichsfunktion ist ein TComparison. Leider ist dieser in der Hilfe nicht sonderlich detailliert erklärt, aber Du kannst Dir auch TListSortCompare anschauen, die Funktionsweise ist ja die Gleiche, wenn mich nicht alles täuscht.

StepByStep 12. Nov 2014 14:04

AW: String in TObjectList suchen
 
Also, nach wie vor verstehe ich das nicht ganz. Weder das eine, noch das andere haben mir dabei geholfen.
Ich weiß nicht, wie ich das in meine Code einbinden muss... und je mehr ich mir durchlese, umso verwirrter bin ich.

Die dazugehörige Funktion muss ich doch irgendwo niederschreiben, erfolgt das in der class?

DeddyH 12. Nov 2014 14:29

AW: String in TObjectList suchen
 
Die Funktion steht doch schon in #19.

StepByStep 12. Nov 2014 14:41

AW: String in TObjectList suchen
 
Ja ich weiß, ich hatte dazu ja auch was geschrieben. Mein Problem ist einfach das Verständnis dafür.
Es wäre gut, wenn du mir vielleicht das ganze mal an einem Beispiel erklärst, weil ich stehe momentan echt auf dem Schlauch.

Ich habe also eine Liste mit zwei Elementen. Das erste hat einen Integerwert von 4 und das zweite Element hat einen Integerwert von 9.

Nach deinem Beispiel rechne ich jetzt '9-4' und das Ergebnis ist 5. Was genau bringt mir das aber jetzt? Was sagt diese 5 aus?
Diese Funktion muss ich aber doch gewiss irgendwo definieren/hinschreiben in meine Klasse oder nicht?

Entschuldigung... Ich bin gerade ziemlich begriffsstuzig. :oops:

Gruß
Jan

mkinzler 12. Nov 2014 14:46

AW: String in TObjectList suchen
 
Nicht das Ergebnis, sondern das Vorzeichen ist wichtig.
Ergebnis positiv: 1. Wert ist größer
Ergebnis 0: beide Werte gleich
Ergebnis negativ: 2. Wert ist größer

StepByStep 12. Nov 2014 14:54

AW: String in TObjectList suchen
 
Hm ok, das habe ich verstanden. Das funktioniert dann ja wahrscheinlich mit if-Anweisungen, aber wo passiert der eigentliche Tausch? In einer vordefinierten Funktion?

DeddyH 12. Nov 2014 15:13

AW: String in TObjectList suchen
 
Der Tausch erfolgt intern in der Sort-Methode der Liste.

StepByStep 12. Nov 2014 15:33

AW: String in TObjectList suchen
 
Hm... ich habe das zwar jetzt integriert bekommen, aber es kommen noch mehr Fehler.

Code:
  List.Sort(TComparer<TWort>.Construct(
    function(const Left, Right: TWort): integer
    begin
      Result := Left.iAnzahl - Right.iAnzahl;
    end));
  iAusgabe    := 0;
  for iAusgabe := List[iAusgabe].iAnzahl to List[List.Count - 1].iAnzahl do
    Memo2.Lines.Add(IntToStr(List[iAusgabe].iAnzahl) + 'x ' + List[iAusgabe].sWort2);
Erstmal, wenn ich in mein erstes Memo "Memo Meme Meme" eintippe, dann erfolgt in der Ausgabe, dem zweiten Memofeld, nur 2x meme, aber "1x memo" fehlt und ich bekomme wieder eine Exception. Ich hatte via Debugger mal in die Liste geschaut und auf Indexposition 0 stand immer noch Memo und auf 1 stand Meme... sollten die nicht getauscht werden? Reingeschaut hatte ich kurz vor der Ausgabe. Danke nochmal für eure Geduld.

DeddyH 12. Nov 2014 15:49

AW: String in TObjectList suchen
 
Was hat denn der Wert einer Eigenschaft eines Eintrags mit der tatsächlichen Anzahl der in der Liste vorhandenen Einträge zu tun?

StepByStep 12. Nov 2014 15:55

AW: String in TObjectList suchen
 
Zitat:

Was hat denn der Wert einer Eigenschaft eines Eintrags mit der tatsächlichen Anzahl der in der Liste vorhandenen Einträge zu tun?
Wenn du so fragst vermutlich nichts, aber ich möchte mit der Zeile

Code:
Memo2.Lines.Add(IntToStr(List[iAusgabe].iAnzahl) + 'x ' + List[iAusgabe].sWort2);
nur aussagen, dass die Anzahl dem entsprechenden Wort zugeordnet wird. Deine Aussage war doch bestimmt auf die Zeile bezogen, oder?
Irgendwie muss ich ja die Werte untereinander in dieses Memofeld schreiben.


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:48 Uhr.
Seite 3 von 4     123 4      

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