AGB  ·  Datenschutz  ·  Impressum  







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

String in TObjectList suchen

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

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.625 Beiträge
 
Delphi 12 Athens
 
#31

AW: String in TObjectList suchen

  Alt 12. Nov 2014, 16:58
Ich hab mal schnell unter XE eine kleine unkommentierte Demo geschrieben.
Angehängte Dateien
Dateityp: zip Sortierung von Listen.zip (1,6 KB, 5x aufgerufen)
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
Benutzerbild von Sir Rufo
Sir Rufo

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

AW: String in TObjectList suchen

  Alt 12. Nov 2014, 16:58
Könntest du für Delphi-Code auch die Delphi-Tags benutzen?

Hm... ich habe das zwar jetzt integriert bekommen, aber es kommen noch mehr Fehler.

Delphi-Quellcode:
  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);
Den Comparer würde ich so definieren:
Delphi-Quellcode:
uses
  Math;

TComparer<TWort>.Construct(
  function (const L, R : TWort ) : Integer
  begin
    Result := CompareValue( L.iAnzahl, R.iAnzahl );
  end );
und das verstehe ich irgendwie überhaupt nicht
Delphi-Quellcode:
  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);
Nehmen wir an, du hast dort 3 Einträge und der erste Eintrag beinhaltet in iAnzahl eine 5, dann versuchst du auf das 5. Element der Liste zuzugreifen, was es logischerweise gar nicht gibt ... sehr seltsam
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 (13. Nov 2014 um 08:03 Uhr)
  Mit Zitat antworten Zitat
StepByStep

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

AW: String in TObjectList suchen

  Alt 13. Nov 2014, 07:59
Guten Morgen,

@Sir Rufo: Wenn ich den Rückgabewert der Funktion wegnehme, dann meckert er, dass er einen ":" erwartet.
Zu folgenden Zeilen:

Delphi-Quellcode:
  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);
iAusgabe ist quasi mein Index. Dieser soll vom niedrigsten bis zum höchsten Wert durchlaufen und entsprechend für jeden Indexwert die dort enthaltene Anzahl und das Wort in das Memofeld schreiben. Kann es vielleicht sein, dass ich TObjectLists falsch verstanden habe?

Für mich ist das eine Liste von 0 bis n. Da ich Integer- und Stringwerte habe, gibt es zwei Spalten, die nebeneinander sind. Und ich kann doch über einen Indexwert darauf zugreifen oder etwa nicht?
Jan
  Mit Zitat antworten Zitat
Zoot

Registriert seit: 30. Jan 2006
Ort: Hessen
113 Beiträge
 
Delphi 11 Alexandria
 
#34

AW: String in TObjectList suchen

  Alt 13. Nov 2014, 08:08
hast du also eigentlich folgendes im Sinn?


Delphi-Quellcode:
  
  for i := 0 to List.Count - 1 do
    Memo2.Lines.Add(IntToStr(List[i].iAnzahl) + 'x ' + List[i].sWort2);
  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
 
#35

AW: String in TObjectList suchen

  Alt 13. Nov 2014, 08:10
Das mit ohne dem Rückgabewert war falsch (ist im Beitrag korrigiert).

Nehmen wir an, du hast folgende Liste
IndexsWortiAnzahl
0hallo2
1du5
2da7
dann ergibt sich daraus, dass iAusgabe von 2..7 läuft.

Zeige mir doch mal in der Liste die Zeilen mit dem Index 3..7 die sind nicht da!

Verstehen könnte ich for iAusgabe := 0 to List.Count -1 do , weil dann läuft iAusgabe von 0..2 und das sind gültige Index-Werte.

PS So ein Debugger leistet tolle Arbeit, wenn man den benutzt und sich einfach während des Ablaufs die Variablenwerte anschaut.
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 (13. Nov 2014 um 08:13 Uhr)
  Mit Zitat antworten Zitat
StepByStep

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

AW: String in TObjectList suchen

  Alt 13. Nov 2014, 08:30
Ich bedanke mich für eure Hilfe, die Erklärung zu dem Index der TObjectList hat mir gerade sehr geholfen. Ich lese richtig aus und zähle auch richtig. Danke nochmals.

Gruß
Jan
Jan
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 4 von 4   « Erste     234   


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 10:39 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