Datei im Hex format einlesen

  • Wundersch?nen guten Nachmittag,


    Ich frage mich zur Zeit, wie ich eine Datei im Hexformat in ein String einlesen kann.
    Dummerwei?e kann ich die Datei nicht vorher einlesen und dann in Hexzeichen umwandeln,
    weil es ein Zeichen enth?lt, das den String beendet.

  • Verstehe ich nicht .. Bis D2009 ist ein String praktisch ein Array of Char und damit ein Array of Byte. Ab D2009 ist Char als Word definiert, um die Unicode Fähigkeit herzustellen.


    Der String selbst allerdings besitzt kein Terminatorzeichen, da die Länge mit angegeben ist.


    Ich vermute mal du verwendest PChar oder sowas in der Art. Dort ist #0 das Terminatorzeichen. Versuch mal einfach die Datei mit CreateFile, GetFileSize, ReadFile, CloseHandle in einen normalen Buffer (von Typ Pointer) einzulesen.


    Danach kannst du in einer Schleife nach dem Motto:

    Code
    1. var
    2. I: Integer;
    3. begin
    4. for I := 0 to BufLen do
    5. begin
    6. Result := Result + IntToHex(PByte(Cardinal(Buffer) + I)^, 2) + ' ';
    7. end;
    8. end;


    eine Hexadezimale Darstellung der Datei erzeugen.