Delphi-Quellcode:
myZip.Read(0, myStream, myHeader);
myStream.Position := 0;
myIni := TMemIniFile.Create(myStream);
[edit] Nee, leider nicht. TMemIniFile.LoadValues setzt die Position auf 0 [/edit]
Diese Read-Funktion "schreibt" ja in diesen Stream, womit der nun am Ende steht, und sie setzt ihn leider danach nicht an den anfang zurück.
Auch viele Lese-Funktionen lesen dann ab der aktuellen Stelle, und nach dem Stream-Ende gibt es dann nichts mehr.
Aber einen Fehler sollte es dann eigentlich auch nicht geben, da eine "leere" INI-Datei eigentlich gültig ist.
Hmmmm, dann bleibt wohl nur noch, laut ""Data Error", dass der Stream nicht entschlüsselt werden kann.
Vielleicht unbekanntes oder falsches Format. Aber dann hätte ich einen Fehler schon beim .Read erwartet.
Somit bleibt nur noch mitten zwischen den Daten ein Problem ... die Klasse denkt sie kann es verstehen und raucht dann in etwas Unbekanntes, oder sie hat einen Bug.