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