Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

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

AW: Was macht: "foo := ord(s[t] >= s[t+1]);" ?

  Alt 19. Mär 2024, 19:06
Es vergleicht einfach zwei aufeinanderfolgende Items eines Strings/Arrays auf >=
und die Rückgabe ist eigentlich ein Boolean, der aber als Integer gespeichert ist, also 0 oder 1.

Delphi-Quellcode:
if s[t] >= s[t+1] then
  foo := 1 // Ord(True)
else
  foo := 0; // Ord(False)
Achtung, je nach Boolean-Typ kann True auch -1 sein.
Im C++ ist die True-Konstante = -1 (alle Bits gesetzt) und im Delphi +1 (nur das kleinste Bit gesetzt)
Boolean versus BOOL/ByteBool/WordBool/LongBool
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat