Nabend!
Bräuchte mal Eure Hilfe - weiß leider nicht weiter.
Ich habe eine Klasse, welche Objekte enthält die ich in einer Datei speichern möchte. Möglichst komprimiert. Leider bekomme ich eine
Exception beim kopieren des Compressstreams in den FileStream bekomme ich eine
Exception - wieso auch immer! "Ungültige Stream Operation".
Die Daten werden scheinbar aber geschrieben. Vielleicht kann mir wer sagen woran es liegt?
Delphi-Quellcode:
var
coFileOUT : TFileStream;
coCompressStream : TCompressionStream;
begin
result := false;
coFileOUT := TFileStream.Create( sFileName, fmCreate );
try
coCompressStream := TCompressionStream.Create(clMax, coFileOUT);
try
Self.SaveToStream( coCompressStream );
coFileOUT.Position := 0;
// coFileOUT.WriteBuffer( coCompressStream, coCompressStream.Size );
coFileOUT.CopyFrom(coCompressStream, coCompressStream.Size);
finally
FreeAndNil( coCompressStream );
end;
finally
FreeAndNil( coFileOUT );
end;
result := true;
Hier knallt es sowohl bei dem "CopyFrom" als auch bei "WriteBuffer".
Die "SaveToStream" Methode ist aus TStringList bzw. TStrings geklaut.
Delphi-Quellcode:
var
s : string;
i: Integer;
begin
s := '';
// Zusammenbauen von "S" ... eher unwichtig dafür
// Und rein in den Stream!
coStream.WriteBuffer(Pointer(S)^, Length(S));
Die Funktion tut das was sie soll...
Jemand eine Idee wo der Fehler liegt?
Gruß
Reli