Hi!
Also ich habe eine Function geschrieben die mehrere Dateien in eine Datei packt, problem jedoch diese werden zuerst in einen TMemoryStream geschrieben um nacher noch durch Kompression oä. durchgejagt werden zu können. Wenn ich jetzt finaler weise das ganze wieder in einen TFileStream schreiben möchte um das ganze zu speichern, krieg ich ne AccessViolation
Kann mir jemand sagen wo mein Fehler liegt???
Delphi-Quellcode:
function GenerateContainer(inpFiles: TStrings; CompressionType: TXipCompressionType; outFileName: String): Boolean;
var
i: Integer;
XipHeader: TXipHeader;
Stream: TFileStream;
Ct1, Ct2: TMemoryStream;
XipFile: TFileStream;
begin
Ct1 := TMemoryStream.Create;
Ct1.Position := 0;
for i := 0 to inpFiles.Count - 1 do
begin
Stream := TFileStream.Create(inpFiles[i], fmOpenRead or fmShareExclusive);
try
Ct1.CopyFrom(Stream, 0);
finally
Stream.Free;
end;
end;
XipFile.Create(outFileName, fmCreate or fmShareExclusive);
try
XipFile.WriteBuffer(Ct1, SizeOf(Ct1));
finally
XipFile.Free;
end;
Ct1.Free;
end;