Einzelnen Beitrag anzeigen

Benutzerbild von phlux
phlux

Registriert seit: 4. Nov 2002
Ort: Witten
1.335 Beiträge
 
Delphi 6 Personal
 
#1

Einen TMemoryStream in einen TFileStream kopieren, aber wie?

  Alt 16. Feb 2003, 12:01
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;
Christian "phlux" Arndt
  Mit Zitat antworten Zitat