![]() |
Einen TMemoryStream in einen TFileStream kopieren, aber wie?
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; |
Wenn du mit 2 TFileStream Instanzen arbeitest, dann musst du auch beide mit TFileStream.Create(...) erzeugen und nicht nur die erste.
Delphi-Quellcode:
XipFile := TFileStream.Create(outFileName, fmCreate or fmShareExclusive);
|
Soweit ich das Überblicken kann, erstelle ich von beiden deklarierten TFileStreams Instanzen :?:
|
Ersetze mal diese Zeile
Delphi-Quellcode:
durch
XipFile.WriteBuffer(Ct1, SizeOf(Ct1));
Delphi-Quellcode:
...:cat:...
XipFile.CopyFrom(Ct1, 0);
|
Liste der Anhänge anzeigen (Anzahl: 1)
Hmm.. ich kriege schon beim Erzeugen der Instanz XipFile eine Exception :x
Ich häng mal die Source an! |
Stimmt, hatte ich vorher nicht beachtet :oops: aus
Delphi-Quellcode:
wird
XipFile.Create(outFileName, fmCreate or fmShareExclusive);
Delphi-Quellcode:
...:cat:...
XipFile := TFileStream.Create(outFileName, fmCreate or fmShareExclusive);
|
:shock: Nein, bin ich blöd, das mir das nicht selbst aufgefallen ist!!!! :x :x :x
@jbg: Jetz weiß ich was du meinstest!! Sry, hab den wald vor lauter bäumen net gesehn :oops: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:10 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz