ne, da hab ich noch keinen Source. Den einzigen source zum tagSchreiben, den ich habe, ist eher ne verarsche: Ich schreibe in den v2 Tag einer mp3 eine andere mp3 rein. Das gibt ne schöne rekursive Dateistruktur

, und abgespielt wird immer nur die Main-mp3...
Im Ernst: ein paar Hilfestellungen:
1. Lese den v2 Tag ein. Und speichere die einzelnen Frames so, dass du schnell rausfinden kannst, was das für ein Frame ist, z.b.
Delphi-Quelltext
1: 2: 3: 4:
| TFrame = record ID: string[4]; data: array of byte; end; |
2. Berechne die Werte, die in den jeweils neuen Frame-Header reinkommen (Wichtig: die Größe!), d.h. z.b. die Stringlänge
3. Kopiere alle Frames des alten Tags in den neuen, bis auf die, die geändert wurden, erkennbar an den IDs
4. Berechne die Daten für den Tag-Header, hier wieder besonders wichtig: die Größe.
5. Schreibe die Datei neu (nur nötig, wenn der neue Header größer ist als der alte, andernfalls gehts wohl schneller...), zuerst den Tag-Header, dann die ganzen Frames, dann den Rest der Datei.
Ist halt n bissel Friemelei.
Wichtig: Bei reinen Text-Frames brauchst du bei den ganzen Flags praktisch nichts zu beachten. Willst du Binäre Daten (Bilder etc.) reinschreiben, solltest du die Daten vorher unsynchronisieren, und das entsprechende Flag setzen.
We are, we were and will not be.