Einzelnen Beitrag anzeigen

amigage

Registriert seit: 11. Nov 2005
Ort: Leipzig
272 Beiträge
 
Delphi 11 Alexandria
 
#1

Byteweises Auslesen einer Unicode-codierten Datei

  Alt 22. Mär 2007, 10:26
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
  Mit Zitat antworten Zitat