Einzelnen Beitrag anzeigen

BigAl

Registriert seit: 6. Sep 2008
Ort: Kehl
495 Beiträge
 
Delphi 12 Athens
 
#1

Prüfen ob eine Single Variable einen gültigen Wert enthält

  Alt 13. Aug 2022, 16:01
Hallo zusammen,

folgendes Problem: Ich erhalte über eine Kommunikation einen Byte-Stream. In diesem Stream sind die verschiedensten Variablentypen enthalten (Words, Single usw.). Das ganze wird dann über Offset-Adressen konvertiert. z.B.:

Delphi-Quellcode:
function GetReal(P: Pointer): Single;
Var
  V: array [0 .. 3] of Byte absolute Result;
begin
  V[0] := PByte(NativeInt(P) + 3)^;
  V[1] := PByte(NativeInt(P) + 2)^;
  V[2] := PByte(NativeInt(P) + 1)^;
  V[3] := PByte(P)^;
end;
Nun kann es aber vorkommen, dass Pointer in einen falschen Bereich zeigt oder im Stream nicht steht was erwartet wurde. Das ist ein reguläres Verhalten welches zur Analyse verwendet wird. Wie kann ich (ohne Exception) feststellen, ob "Result" einen gültigen Wert beinhaltet?

Ich würde gerne bei ungültigem Inhalt die Variable zu NaN oder zu 0.0 machen. Leider weiß ich nicht wie ich möglichst einfach rausbekomme ober der Inhalt gültig ist.

Alex
Man sollte nie so viel zu tun haben, dass man zum Nachdenken keine Zeit mehr hat. (G.C. Lichtenberg)
  Mit Zitat antworten Zitat