Bei meinem Beispiel handelt es sich halt um eine ZIP-Datei auf der Platte, es ist für Dich, da Du das Zip ja in 'ner
DB hast, nicht geeignet.
Wie man ein ZIP als Stream handhabt, weiß ich nicht, hab's noch nicht ausprobiert.
aber ich rate jetzt mal so als Idee:
Delphi-Quellcode:
procedure TForm1.CopyToZip;
var
Idx: Integer;
SourceStream: TStream;
ZEntry: TZMDirEntry;
ZM: TZipMaster;
st: TMemoryStream;
begin
ZM := TZipMaster.Create(
nil);
// Hierein kommt das, was ins ZIP übernommen werden soll
st := TMemoryStream.Create;
// st irgendwie irgendwoher befüllen
try
SourceStream := hier den Blobinhalt
in den Stream kopieren;
try
ZM.ExtStream := SourceStream;
// connect to ZipMaster
if ZM.ErrCode <> 0
then
raise Exception.Create('
Invalid zip file: ' + ZM.ErrMessage);
st.Position := 0;
ZM.ZipStream.LoadFromStream(st);
ZM.AddStreamToFile('
Dateiname im ZIP',0,FILE_ATTRIBUTE_ARCHIVE);
SourceStream ins Blob kopieren
finally
SourceStream.Free;
end;
finally
st.Free;
ZM.Free;
end;
end;