Autor Beitrag
Bronstein
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 578
Erhaltene Danke: 1

WIN XP
Delphi 6 / Delphi 2006 / Delphi XE
BeitragVerfasst: Mi 22.08.07 15:26 
Wie kann ich Kommazahlen sortieren.

Datum sortiere ich so:
Compare := Trunc(StrToDateTime(TextToSort1)-StrToDateTime(TextToSort2))+1; //Datum

Integer so:
Compare := StrToInt(TextToSort1)-StrToInt(TextToSort2); //Zahl

Strings so:
Compare := CompareText(TextToSort1, TextToSort2); //Text

Kommazahlen so:
Compare := Trunc(StrToFloat(TextToSort1)-StrToFloat(TextToSort2))-1;

Bei den Kommazahlen funktioniert das aber nicht, da ich ja die Zahlen runde. Es soll aber genau sortiert werden, sprich mit Dezimalstellen. Wie mach ich das??

_________________
Es gibt keine dummen Fragen nur dumme Antworten!!!
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10183
Erhaltene Danke: 1256

W10ent
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Mi 22.08.07 16:39 
Moin!

Dafür gibt es doch schon fertige Funktionen in der Unit Math: :idea: ;)
DOH hat folgendes geschrieben:
Unit: Math

Kategorie: Vergleich

Delphi-Syntax:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
function CompareValue(const A, B: Integer): TValueRelationship; overload;
function CompareValue(const A, B: Int64): TValueRelationship; overload;
function CompareValue(const A, B: Single; Epsilon: Single = 0): TValueRelationship; overload;
function CompareValue(const A, B: Double; Epsilon: Double = 0): TValueRelationship; overload;
function CompareValue(const A, B: Extended; Epsilon: Extended = 0): TValueRelationship; overload;


Beschreibung

Mit CompareValue können Sie das Verhältnis zwischen zwei numerischen Werten bestimmen. Beim Vergleich von Gleitkommawerten können Sie eine maximale Differenz angeben, sodass Werte, die innerhalb dieser Differenz liegen, als gleich betrachtet werden.

A und B sind die zu vergleichenden Werte.

Epsilon ist die maximale Differenz, mit der A und B noch als gleich angesehen werden.

CompareValue gibt folgende Werte zurück:

LessThanValue, wenn A kleiner als B ist (um mehr als Epsilon, wenn A und B Gleitkommazahlen sind).
EqualsValue, wenn A gleich B ist (identisch oder innerhalb von Epsilon, wenn A und B Gleitkommazahlen sind).
GreaterThanValue, wenn A größer als B ist (um mehr als Epsilon, wenn A und B Gleitkommazahlen sind).
cu
Narses

_________________
There are 10 types of people - those who understand binary and those who don´t.
Bronstein Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 578
Erhaltene Danke: 1

WIN XP
Delphi 6 / Delphi 2006 / Delphi XE
BeitragVerfasst: Mi 22.08.07 18:36 
Danke.
Jetzt ist mir gerade aufgefallen, dass das mit dem Datum Zeit sortieren nicht funktioniert. Hast du da vielleicht auch einen Tipp für mich

_________________
Es gibt keine dummen Fragen nur dumme Antworten!!!
Philipp_Reitter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 430



BeitragVerfasst: Mi 22.08.07 19:22 
was meinst du genau mit kommazahlen sortieren?
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10183
Erhaltene Danke: 1256

W10ent
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Mi 22.08.07 22:08 
Moin!

user profile iconBronstein hat folgendes geschrieben:
Danke.

Bitte. ;)

user profile iconBronstein hat folgendes geschrieben:
Jetzt ist mir gerade aufgefallen, dass das mit dem Datum Zeit sortieren nicht funktioniert. Hast du da vielleicht auch einen Tipp für mich

Klar, aber hast du keine Delphi-Online-Hilfe? :gruebel:

OK, zum Tipp: 8)
  • Die gesuchte/n Funktion/en ist/sind aus der Unit DateUtils
  • Der Funktionsname beider Teekesselchen fängt mit einem "C" an und hört mit einem "e" auf
  • Der Funktionsname des einen Teekesselchens ist länger, als der des anderen
  • Die Teekesselchen-Funktion mit dem längeren Namen macht auch mehr, als die mit dem kürzeren
Na, da bin ich aber mal gespannt, ob du das Rätsel knackst... :P :roll:

cu
Narses

_________________
There are 10 types of people - those who understand binary and those who don´t.
Bronstein Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 578
Erhaltene Danke: 1

WIN XP
Delphi 6 / Delphi 2006 / Delphi XE
BeitragVerfasst: Mi 22.08.07 22:14 
Super, nochmals Danke.
Für alle die Funktion heißt:
CompareDateTime

_________________
Es gibt keine dummen Fragen nur dumme Antworten!!!