Zitat von
ljmarkus:
Mit einem HEX Viewer kann ich dann die richtigen Daten sehen. Nur wie kann ich die jetzt umwandeln und auf gewisse punkte
zugreifen ?
Ganz einfach, die Daten sind in einem String.
Angenommen du sollst an Position 15-16 einen 16 Bit Integer auslesen.
Delphi-Quellcode:
var
x : string; // die empfangenen Daten
p : PChar;
wert : Word;
begin
x := ...;
p := PChar(x); // Zeiger auf die Daten
wert := PWord(p+15)^;
end;
Noch angenehmer wird die Sache, wenn du einen Record hast, der die Datenstruktur repräsentiert.
Delphi-Quellcode:
TArtDMXRequest =
packed record
Version: Word;
// die Inhalte sind rein fiktiv
Counter: DWord;
...
end;
var
request : TArtDMXRequest
x :
string;
begin
// Sicherheitsprüfung
if Length(x) < sizeof(request)
then
raise Exception.Create('
zu wenig Daten!');
// Daten vom String auf Record kopieren
Move(x[1], request, SizeOf(request));
request.Counter := request.Counter + 1;
// Beispiel für Zugriff