Hallo,
ich bin mal wieder mit einem Problem unterwegs
Ich bin dabei, eine Binärdatei zu entschlüsseln.
Ich lese an einer bestimmten Stelle ein Byte aus, um die Länge der nachfolgenden Information zu erhalten und weiter zu verarbeiten. Ich habe jetzt aber das Problem mit dem
Unicode.
zB. hat Byte 29 den Hexwert 00 und Byte 30 den Hexwert 14.
Die Umwandlung des Bytes 30 ergibt somit einen Dezimalwert von 20, also die Länge meines nachfolgenden Datensatzes.
Wie rechne ich aber die beiden Bytes zusammen um auch einen Wert höher 256 zu erhalten?
Delphi-Quellcode:
var
fsIN : TFileStream;
wHeader : Word;
begin
fsIN := TFileStream.Create('D:\temp\meineBinärdatei.xyz', fmOpenRead);
try
fsIN.Seek(28, soFromBeginning);
fsIN.Read(wHeader, SizeOf(wHeader));
ShowMessage(IntToHex(wheader, SizeOf(wHeader)));
showmessage(IntToStr(wheader));
finally
FreeAndNil(fsIN);
end;
end;
Kann mir einer sagen, was ich tun muss, um den
Unicode-Wert aus den Bytes 29 und 30 als String zu erhalten, den ich dann in einer weiteren Funktion (z.B. die
hier im Forum erwähnte "function UnicodeToAnsi(SubUnicode: string):string;" ) umwandeln kann?
Besten Danke für jeden Hinweis.
Amigage