AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

String in TObjectList suchen

Ein Thema von StepByStep · begonnen am 12. Nov 2014 · letzter Beitrag vom 13. Nov 2014
Antwort Antwort
Seite 2 von 4     12 34   
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.536 Beiträge
 
Delphi 11 Alexandria
 
#11

AW: String in TObjectList suchen

  Alt 12. Nov 2014, 10:06
TObjectList enthält bereits eine Sort-Methode, da böte es sich ja an, diese zu benutzen. Aber selbst wenn nicht: was versuchst Du mit dem High() zu ermitteln, mir ist das nicht klar?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Blup

Registriert seit: 7. Aug 2008
Ort: Brandenburg
1.429 Beiträge
 
Delphi 10.4 Sydney
 
#12

AW: String in TObjectList suchen

  Alt 12. Nov 2014, 10:12
Schau mal in die Hilfe zu "High()" und dann überleg was "High(List[List.Count - 1].iAnzahl)" deiner Meinung nach zurück gibt.
  Mit Zitat antworten Zitat
StepByStep

Registriert seit: 12. Nov 2014
Ort: Schleswig-Holstein
61 Beiträge
 
Delphi 7 Professional
 
#13

AW: String in TObjectList suchen

  Alt 12. Nov 2014, 10:33
@DeddyH: Da stimme ich dir zu, wenn die TObjectList bereits einen Sortieralgorithmus besitzt, werde ich diesen auch nehmen. Bis dato wusste ich davon aber noch nicht.

@DeddyH & Blup: Mit dem High(...) möchte ich sagen, dass er von Beginn der List bis zum höchsten Indexwert durchgeht und sortiert - naja, zumindest habe ich mir das gedacht.
Jan

Geändert von StepByStep (12. Nov 2014 um 10:38 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.536 Beiträge
 
Delphi 11 Alexandria
 
#14

AW: String in TObjectList suchen

  Alt 12. Nov 2014, 10:43
Schau doch bitte mal nach: High().
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
StepByStep

Registriert seit: 12. Nov 2014
Ort: Schleswig-Holstein
61 Beiträge
 
Delphi 7 Professional
 
#15

AW: String in TObjectList suchen

  Alt 12. Nov 2014, 10:49
Zitat:
In Delphi können Sie mit High die Obergrenze eines Ordinal-, Array- oder ShortString-Wertes abrufen.
Also wenn ich das jetzt richtig verstanden habe, dann kann man diese Funktion sowieso nicht auf TObjectList übertragen.
Wenn das so ist, würde ja sowie so dein Vorschlag bezüglich der integrierten Sortiermethode greifen DeddyH.

Ich glaube jetzt muss ich mich da erstmal reinlesen, danke für die Hilfe bis hierhin.

Gruß
Jan
Jan
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.536 Beiträge
 
Delphi 11 Alexandria
 
#16

AW: String in TObjectList suchen

  Alt 12. Nov 2014, 11:01
iAnzahl dürfte ja ein Ordinaltyp (Integer?) sein. Also gibt High(List[List.Count - 1].iAnzahl) immer denselben Wert zurück, nämlich den des maximal möglichen für den Typ von iAnzahl, im Falle von Integer also MAXINT.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
StepByStep

Registriert seit: 12. Nov 2014
Ort: Schleswig-Holstein
61 Beiträge
 
Delphi 7 Professional
 
#17

AW: String in TObjectList suchen

  Alt 12. Nov 2014, 11:50
Ja das ist richtig, iAnzahl ist ein Integer. Ich wollte aber gar nicht den Maximalwert der Integers wiedergeben, sondern den der TOjectList.
Ich hatte mir jetzt mal, die Sortierfunktion der TObjectList angeschaut, diese ist aber gar nicht anders als meine, kann das sein?

Mein Problem liegt daran, dass ich nicht genau weiß, wie ich auf die Richtige "Spalte" der TObjectList zugreife, also auf iAnzahl und danach sortiere und das richtig ausgebe...
Jan
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#18

AW: String in TObjectList suchen

  Alt 12. Nov 2014, 12:19
Warum nicht einfach einen IComparer<T> Delphi-Referenz durchsuchenSystem.Generics.Defaults.IComparer der Liste übergeben?

Dann kann man ganz simpel mit Delphi-Referenz durchsuchenSystem.Generics.Collections.TList.Contains abfragen ob eine gleiche Instanz schon in der Liste enthalten ist.

Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)

Geändert von Sir Rufo (12. Nov 2014 um 12:37 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.536 Beiträge
 
Delphi 11 Alexandria
 
#19

AW: String in TObjectList suchen

  Alt 12. Nov 2014, 12:36
Die Sortierung an sich übernimmt die Liste selbst, Du musst nur die Vergleichsfunktion schreiben, die festlegt, wann ein Item "kleiner" als das andere ist. Diese Vergleichsfunktion kannst Du sogar beim Aufruf als anonyme Methode übergeben. Ungetestet:
Delphi-Quellcode:
List.Sort(TComparer<TWort>.Construct(
  function(const Left, Right: TWort): integer
  begin
    Result := Left.iAnzahl - Right.iAnzahl;
  end));
Für TComparer musst Du noch die Unit Generics.Defaults einbinden.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
StepByStep

Registriert seit: 12. Nov 2014
Ort: Schleswig-Holstein
61 Beiträge
 
Delphi 7 Professional
 
#20

AW: String in TObjectList suchen

  Alt 12. Nov 2014, 12:56
Also das Vergleichen habe ich ja bereits mit DeddyH's Methode erfolgreich lösen können, die habe ich für meine Belange umgewandelt und integriert.
Einzig diese Sortierfunktion steht mir im Wege. Wobei ich glaube, dass es weniger die Funktion, als mein Verständnis dafür ist.

Zitat:
Die Sortierung an sich übernimmt die Liste selbst, Du musst nur die Vergleichsfunktion schreiben, die festlegt, wann ein Item "kleiner" als das andere ist. Diese Vergleichsfunktion kannst Du sogar beim Aufruf als anonyme Methode übergeben. Ungetestet:
markieren
Delphi-Quellcode:
List.Sort(TComparer<TWort>.Construct(
function(const Left, Right: TWort): integer
begin
Result := Left.iAnzahl - Right.iAnzahl;
end));
Für TComparer musst Du noch die Unit Generics.Defaults einbinden.
Wenn ich mir das so anschaue, würde ich gerne mal meine Gedanken dazu mitteilen und es wäre nett, wenn ihr sie ggf. berichtigt.
Ich habe eine Funktion mit zwei Variablen? des Typs TWort. Der Rückgabewert ist ein Integer.
Die Rechnung besagt: Links weniger rechts. Bsp.: 4, 9 - Dann sollte jetzt 9 mit 4 getauscht werden. Result = 5.

Aber was bringt mir dieses Result? Ich möchte im Enddefekt die nach der Anzahl sortierte Liste in einem weiteren Memofeld ausgeben.
Jan
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 17:53 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