Einzelnen Beitrag anzeigen

BenTech

Registriert seit: 16. Jun 2003
Ort: Dortmund
60 Beiträge
 
Turbo Delphi für Win32
 
#1

Hexwerte in eine Datei schreiben...

  Alt 8. Sep 2004, 19:24
Hallo,
ich schreibe gerade eine Komponente, mit der sich der ID3v2 Tag einer Mp3 Datei manipulieren lässt.
Der Tag besteht aus einzelnen Frames, in denen die Informationen gespeichert sind.
Nun zu meinem Problem:
Am Anfang eines jeden Frames wird die Länge des Frames (in Byte) angegeben.
Ich finde aber einfach keine Möglichkeit diese Information in die Datei zu schreiben.

Folgendermaßen sieht der Quelltext aus (am Beispiel des APIC Frames für das CD Cover):
Code:
procedure SchreibeFrameHeaderAPIC;
var buf    : PByteArray;
    imgSize : Integer;
    imgHex : String;
begin
 GetMem(buf,4);
 imgSize := FileSize(coverimg);
 imgHex := IntToHex(imgSize);
 ...
 BlockWrite(mp3file,buf^,4);
 FreeMem(Buf);
end;
Ich habe den Code etwas vereinfacht, damit er übersichtlich bleibt .
"..." markiert die Stelle, an der mein Problem liegt.
Der String "imgHex" sieht beispielsweise so aus: $00001997
Ich habe jetzt nur keinen blassen schimmer, wie ich das in den Puffer schreiben soll, da ich keine Funktion in Delphi gefunden habe, mit der sich so etwas machen lässt.
Kann mir eventuell jemand helfen. Vielen Dank schonmal
  Mit Zitat antworten Zitat