ich arbeite grade an einer Anwendung welche daten über die Serielle Schnittstelle bekommt und die dann weiter verarbeitet.
Hierbei nutzte ich einen Pointer vom Typ Word um bestimmte Datenteile aus einem ShortString zu extrahieren.
Nun Habe ich folgenden Shortstring im Speicher:
Code: Alles auswählen
007487F0: 08 aa f0 05 07 03 0c 08 e5 00 00 00 00 00 ...
und folgenden Code führe ich nun aus, mit dem Ziel das in meiner Zielvariable hinterher 030C steht:
Code: Alles auswählen
ptr_Haltezeit:= @einzeile2[5];
Melder_Haltezeit:= ptr_Haltezeit^;
Kann mir jemand sagen woran dies liegt, bzw. wie man es umgehen kann?
NG
Dr. Console
[EDIT]: Hab die lösung gefunden, Hardware- und OS-abhängig werden Daten entweder bei Little Endian LSB-first oder bei Big Endian MSB-First abgespeichert.
Die entsprechenden Fuktionen zur konvertierung sind NtoBE / BEtoN für default zu Big Endian oder LEtoN / NtoLE.
Mehr Infos hier: http://wiki.freepascal.org/Writing_port ... chitecture