Hallo,
Ich habe ein weiteres Problem mit den Streams.
Diesmal ist es aber für mich komplett unlogisch, wieso dieser Stream Read Error auftritt.
Ich habe meine
Unit mal angehängt damit ihr sie euch ansehen könnt und mich eventuell auch auf andere Fehler hinweisen könnt
Also:
Das hier funktioniert(Dabei wird der Stream direkt in den Funktionen geladen):
Delphi-Quellcode:
procedure TForm1.Button2Click(Sender: TObject);
var
Archive: TArchive;
// FStream: TFileStream;
begin
Archive := TArchive.Create(ARCHIVEFILE);
// FStream := TFileStream.Create(ARCHIVEFILE, fmCreate or fmShareExclusive);
try
showmessage(inttostr(Fstream.position));
Archive.OnFileProgress := FileProgress;
Archive.OnTotalProgress := TotalProgress;
ListBox1.Items.Assign(Archive.Contents);
ShowMessage('Test');
Archive.ExtractAll(EXTRACTTO);
finally
// FreeAndNil(FStream);
Archive.Free;
end;
end;
Aber: Wenn ich den Stream schon in bei dem Button lade und ihn dann später an die selbe(nur auf Stream-Empfang ausgelegte)Funktion schicke gibt er mir Exceptions ohne Ende:
Delphi-Quellcode:
procedure TForm1.Button2Click(Sender: TObject);
var
Archive: TArchive;
FStream: TFileStream;
begin
Archive := TArchive.Create(ARCHIVEFILE);
FStream := TFileStream.Create(ARCHIVEFILE, fmCreate or fmShareExclusive);
try
showmessage(inttostr(Fstream.position));
Archive.OnFileProgress := FileProgress;
Archive.OnTotalProgress := TotalProgress;
// ListBox1.Items.Assign(Archive.Contents);
ShowMessage('Test');
Archive.ExtractAllFromStream(EXTRACTTO,FStream);
finally
FreeAndNil(FStream);
Archive.Free;
end;
end;
Das sollte doch keinen Unterschied machen oder?
Ich bitte um Hilfe
Danke schonmal
Max