Ja, hatte vergessen, dass die ZStreams nur "durchreichen"
und nicht "selbst" auf 'nem MemoryStream aufbauen, obwohl alles im
RAM bleibt.
Was aber geht, ist die Variante mit den TBytes
procedure Read(const FileName: string; out Bytes: TBytes); overload;
und dann die TBytes zu PFussballMatrix casten. (dynamische Arrays haben einen Pointer drin, welcher aus den Datenanfang zeigt)
Delphi-Quellcode:
var
Bytes: TBytes;
begin
MyZip.Read(IndexOrFilename, Bytes);
//Assigned(Length(Bytes) = SizeOf(TFussballMatrix), '...');
xxx := PFussballMatrix(Bytes)^[x, y].Eg;
end;