Einzelnen Beitrag anzeigen

shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#4

Re: Byteweises Auslesen einer Unicode-codierten Datei

  Alt 22. Mär 2007, 10:54
Delphi-Quellcode:
var
  fsIN : TFileStream;
  wHeader : Word;
  Daten : WideString; // <====
begin
  SetLength(Daten, 30);
  fsIN := TFileStream.Create('D:\temp\meineBinärdatei.xyz', fmOpenRead);
  try
    fsIN.Seek(28, soFromBeginning);
    fsIN.Read(@Daten[1], Length(Daten) * sizeof(Widechar));

    ShowMessage(Daten);
  finally
    FreeAndNil(fsIN);
  end;
end;
Gausi hat natürlich recht; man muss Byte-Reihenfolge beachten.
Sollte diese Reihenfolge nicht zum Intel-Format passen, dann verwendet man einfach folgende
Procedure:
Delphi-Quellcode:
// Hilfsfunktion zum vertauschen der Byteorder in einem WideString
procedure SwapWideString(var ws:WideString);
var
   i : Integer;
begin
   for i := 1 to length(ws) do
      ws[i] := WideChar(Swap(Ord(ws[i])));
end;
Andreas
  Mit Zitat antworten Zitat