Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#25

Re: qwertz543221 kleine String-Math-Lib

  Alt 14. Jun 2009, 15:45
OK, das kommt davon, wenn man bei seiner Vergleichsfunktion fernab von jeglichen Standards seine Rückgabewerte definiert ... hatte ganz übersehen, daß diese anders vergleicht.

mach mal aus dem
while vergleich(b, a) <= 0 do dieses hier
while vergleich(b, a) >= 1 do ich hoff das stimmt dann



standard:
0 a=b
-1 a<b
1 a>b

und zum Auswerten dann
Delphi-Quellcode:
if vergleich(a, b) < 0 then a < b if vergleich(a, b) = -1 then
if vergleich(a, b) <= 0 then a <= b
if vergleich(a, b) = 0 then a = b
if vergleich(a, b) >= 0 then a >= b
if vergleich(a, b) > 0 then a > b if vergleich(a, b) = 1 then
if vergleich(a, b) <> 0 then a <> b
du siehst ... so verhält sich dann a zu b wie "vergleich" zu 0

oder man nutzt bei seiner Vergleichs-Funktion das TValueRelationship aus der Unit Types
(wie vorher schonmal vorgeschlagen), dann fällt zusätzlich noch auf, daß auch sowas geht

Delphi-Quellcode:
if vergleich(a, b) = LessThanValue then a < b
if vergleich(a, b) <> GreaterThanValue then a <= b
if vergleich(a, b) = EqualsValue then a = b
if vergleich(a, b) <> LessThanValue then a >= b
if vergleich(a, b) = GreaterThanValue then a > b
if vergleich(a, b) <> EqualsValue then a <> b
$2B or not $2B
  Mit Zitat antworten Zitat