Ich habe das es nun mit dem TWriter/TReader probiert und siehe da...es funktioniert!
Nun stellt sich mir die Frage, wie ich z. B. nur den Header C und dessen Content auslesen kann?
Dann musst Du mit seek zur der Position des HeaderC springen.
Die Position wäre dann: 0+sizeOf(HeaderA)+sizeOf(dataA)+sizeOf(HeaderB)+si zeOf(dataB).
Header.len gibt das die Größe des Datenpaketes an?
Wenn ja, dann kannst Du auch HeaderX.len anstelle von sizeOf(dataX) benutzen.
Grüße
Klaus