Schönen guten Tag erstmal,
ich habe gerade beim Übertragen von
Access(DAO)-Daten in
MySql einen Extended-Wert gefunden, der sich beim Kopieren nicht in Zeichen umwandeln ließ. Mit einem Hex-Editor hab ich den seltsamen Wert gesucht und gefunden.
Delphi-Quellcode:
var
e:Extended;
p:^Byte;
begin
p:=@e;
p^:=$00; inc(p);
p^:=$00; inc(p);
p^:=$00; inc(p);
p^:=$00; inc(p);
p^:=$00; inc(p);
p^:=$00; inc(p);
p^:=$00; inc(p);
p^:=$C0; inc(p);
p^:=$FF; inc(p);
p^:=$FF; inc(p);
ShowMessage(FloatToStr(e)+' und '+VarToStr(e));
end;
Frage 1: Kann mir jemand erklären, wie es eine Extended-Variable geben kann, die keinen gültigen Wert enthält?
Frage 2: Kann mir jemand erklären, woran man solche Werte identifizieren kann? Eine Funktion wie "isValidFloat(e:Extended):Boolean" wäre das Ziel.
Frage 3: Wie kann es zu solchen Werten kommen? Gibt es andere Leute, die aus einer ansonsten intakten
Access-Datenbank soetwas rausgelesen haben?
Jeder auch noch so kleine Ansatz/Idee wird hilfreich sein.