![]() |
Wieder die guten Streams :(
Liste der Anhänge anzeigen (Anzahl: 2)
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:
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:
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;
Delphi-Quellcode:
Das sollte doch keinen Unterschied machen oder?
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; Ich bitte um Hilfe Danke schonmal Max |
Re: Wieder die guten Streams :(
Ich vermute mal, weil FStream leer ist und dort keinerlei Daten drin sind. Für mich hört sich ExtractAllFromStream so an, dass in dem übergebenen Stream, die Archivdatei drin ist. Da aber der Stream leer ist, wird er Probleme haben, irgendwas daraus zu extrahieren ;)
|
Re: Wieder die guten Streams :(
Der Stream dürfte doch eigentlich mit dieser Zeile nichtmehr leer sein oder?
Delphi-Quellcode:
Die Methodik der Routine hast du schon richtig verstanden, sie soll das Archiv im Stream nehmen.
FStream := TFileStream.Create(ARCHIVEFILE, fmCreate or fmShareExclusive);
Gruß, Max EDIT:// Ich Vollidiot ... Ich überschreibe durch 'fmCreate' ja den Stream *Bangs his head repeadly against a wall* Danke auf jeden Fall! |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:04 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