Am Anfang deiner gewünschten Datei brauchst du in jedem Fall eine Liste mit Dateieinträgen, dann die rohen Datenströme. Das folgende Format is so ziemlich das geringste, das deinen Anforderungen entspricht:
Code:
Zahl der Dateieinträge: Integer (folgend N)
{
Name der Datei: string[255];
Position der Datei im Stream: Integer; (folgend P_x)
Länge der Datei: Integer; (folgend L_x)
} N mal
X = 1 .. N
{
[Position P_X]
L_X Bytes Daten
}
Das natürlich alles andere als toll, Dateinamen sind auf 255 Zeichen limitiert, Dateigrößen auf 2^31 Byte, es gibt keine Fehlererkennung durch Prüfsummen oder Hashes, ...