AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

TStringList absteigend sortieren

Ein Thema von XxnemesisxX49 · begonnen am 4. Sep 2012 · letzter Beitrag vom 5. Sep 2012
Antwort Antwort
Seite 1 von 4  1 23     Letzte » 
XxnemesisxX49

Registriert seit: 4. Sep 2012
14 Beiträge
 
#1

TStringList absteigend sortieren

  Alt 4. Sep 2012, 22:59
Delphi-Version: 7
Guten Abend zusammen,

ich habe nun schon sämtliche Foren durchkämmt, doch finde keine Lösung für mein Problem.
Ich möchte Werte in einer TStringlist absteigend sortieren. Bisher habe ich es mit dem Code unten versucht, jedoch werden die Werte wie folgt sortiert:
22
20000
200
20
Code:
function StringListSortCompare(List: TStringList; Index1, Index2: integer): integer;
begin
  if List.CaseSensitive
    then Result := AnsiCompareStr(List[Index2], List[Index1])
    else Result := AnsiCompareText(List[Index2], List[Index1]);
end;
Ich hätte sie aber gerne so sortiert:
20000
200
22
20

Ich hoffe ihr könnt mir weiterhelfen und schon mal vielen Dank im Voraus

Geändert von XxnemesisxX49 ( 5. Sep 2012 um 16:08 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie
(Moderator)

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#2

AW: TStringList abwertend sortieren

  Alt 4. Sep 2012, 23:12
Du vergleichst ja auch Zeichen und keine Ganzzahlen.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
XxnemesisxX49

Registriert seit: 4. Sep 2012
14 Beiträge
 
#3

AW: TStringList abwertend sortieren

  Alt 4. Sep 2012, 23:14
Gibt es eine Möglichkeit ganze Zahlen zu vergleichen?

Geändert von XxnemesisxX49 ( 4. Sep 2012 um 23:17 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie
(Moderator)

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#4

AW: TStringList abwertend sortieren

  Alt 4. Sep 2012, 23:26
Klar. Mit <, > und =.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
XxnemesisxX49

Registriert seit: 4. Sep 2012
14 Beiträge
 
#5

AW: TStringList abwertend sortieren

  Alt 4. Sep 2012, 23:35
Kann ich den Code, den ich gepostet hab, irgendwie so umändern, dass er tut was ich will
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
38.932 Beiträge
 
Delphi 10.4 Sydney
 
#6

AW: TStringList abwertend sortieren

  Alt 4. Sep 2012, 23:39
Zitat:
Gibt es eine Möglichkeit ganze Zahlen zu vergleichen?
Ja, kann man.

z.B., wenn man vor dem Vergleich die Strings in Zahlen umwandelt.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
Delphi-Tage 2005-2014
  Mit Zitat antworten Zitat
Bjoerk

Registriert seit: 28. Feb 2011
Ort: Mannheim
1.380 Beiträge
 
Delphi 10.4 Sydney
 
#7

AW: TStringList abwertend sortieren

  Alt 4. Sep 2012, 23:39
Schau die an, welche Ergebnisse AnsiCompareStr liefert und schreib' die Function so um, daß du diese Ergebnisse hast, indem du StrToInt(List[Index1]) mit StrToInt(List[Index2]) vergleichst. Es gibt drei Fälle.

Delphi-Quellcode:
function Compare(List: TStringList; Index1, Index2: Integer): Integer;
begin
  Result:= ?;
  if StrToInt(List[Index1]) > StrToInt(List[Index2]) then
    Result:= ?
  else
    if StrToInt(List[Index1]) < StrToInt(List[Index2]) then
      Result:= ?;
end;
  Mit Zitat antworten Zitat
Jumpy

Registriert seit: 9. Dez 2010
Ort: Mönchengladbach
1.701 Beiträge
 
Delphi 6 Enterprise
 
#8

AW: TStringList abwertend sortieren

  Alt 4. Sep 2012, 23:40
Man könnte die Strings in der Lise in Zahlen umwandeln und vergleichen oder in(nerhalb) der Vergleichsfunktion links mit nullen auffüllen. Weiß nicht, ob's da einen Befehl für gibt, bei OracleSQL wär das LPAD.
Ralph
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
38.932 Beiträge
 
Delphi 10.4 Sydney
 
#9

AW: TStringList abwertend sortieren

  Alt 4. Sep 2012, 23:53
Schau die an, welche Ergebnisse AnsiCompareStr liefert und
Wobei in der OH auch drinsteht, welche Werte das Result dieses Delphi-Referenz durchsuchenTStringListSortCompare haben soll.

PS: Teilweise kennt Delphi auch noch andere Funktionen, welche soein Ergebnis liefern.
Delphi-Referenz durchsuchenCompareValue
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
Delphi-Tage 2005-2014
  Mit Zitat antworten Zitat
XxnemesisxX49

Registriert seit: 4. Sep 2012
14 Beiträge
 
#10

AW: TStringList abwertend sortieren

  Alt 5. Sep 2012, 00:15
Juhu, es funktioniert, danke

Ich hab noch eine Frage.
Wenn ich jetzt Zahlen mit Namen sortieren will, funktioniert die Methode nicht mehr, weil die Namen ja keine Integers sein können.
Bsp.:
2000 Peter
500 Hans
20 Alex

Gibt's da auch eine Lösung, die nicht all zu schwer ist?
  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 15:14 Uhr.
Powered by vBulletin® Copyright ©2000 - 2022, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf