Muss bei
fs := TFileStream.Create(openpfad+*itempfad*, fmOpenread );?
der Archivpfad+der Dateipfad im Archiv?
Bezieht sich der FileStream nicht auf die auszugebende Datei? Deswegen benutzt doch SirRufo
fs := TFileStream.Create( 'C:\irgendwo\irgendwas.dat', fmOpenCreate );
just my 2 cents