Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   ACHTUNG: Fehler in TZipFile ... Instanz unbedingt nur einmal verwenden (https://www.delphipraxis.net/207364-achtung-fehler-tzipfile-instanz-unbedingt-nur-einmal-verwenden.html)

himitsu 17. Mär 2021 12:51

ACHTUNG: Fehler in TZipFile ... Instanz unbedingt nur einmal verwenden
 
Bin ich gestern abend drüber gestolpert, in 10.4.2.
Delphi-Quellcode:
Zip := TZipFile.Create;
Zip.Open('File1.zip', zmWrite);

Zip.Add(Stream, Name);
...

Zip.Close;
Zip.Open('File2.zip', zmWrite);

Zip.Add(Stream, Name);
...

//Zip.Close;
Zip.Free;
Vorallem wenn es beim Add vorher Probleme gab, aber auch ohne Probleme ... ab File2 sind alle Dateien defekt und nicht mehr lesbar.
Create+Open+Free geht, aber man darf das Objekt nicht wiederverwenden.


In meinem Fall war es eine Schleife, wo ich mittendrin ab und an eine neue Datei erstellt hatte, wenn sie zu groß wurde, also nur Close+Open ... und hab mich dann gewundert.

KodeZwerg 17. Mär 2021 14:02

AW: ACHTUNG: Fehler in TZipFile ... Instanz unbedingt nur einmal verwenden
 
Danke für den Hinweis (ich wollte mich die Woche auch mal mit Delphi und Zippen befassen für Willie sein Experiment)
Bisher nahm ich immer Abbrevia (ohne das mir Fehler aufgefallen sind), nun wollt ich pure Delphi Hausmittel verkosten :-]

Uwe Raabe 17. Mär 2021 14:13

AW: ACHTUNG: Fehler in TZipFile ... Instanz unbedingt nur einmal verwenden
 
Zitat:

Zitat von himitsu (Beitrag 1485356)
Vorallem wenn es beim Add vorher Probleme gab, aber auch ohne Probleme ... ab File2 sind alle Dateien defekt und nicht mehr lesbar.
Create+Open+Free geht, aber man darf das Objekt nicht wiederverwenden.

QP-Eintrag mit Test-Case?

himitsu 17. Mär 2021 15:54

AW: ACHTUNG: Fehler in TZipFile ... Instanz unbedingt nur einmal verwenden
 
kommt noch,

aber dachte mir erstmal schnell eine Warnung, falls jemand TZipFile benutzt.

KodeZwerg 17. Mär 2021 16:50

AW: ACHTUNG: Fehler in TZipFile ... Instanz unbedingt nur einmal verwenden
 
Ich habe nun die ganze deutsche emba wiki docu durch, da wird nirgends ein Wörtchen drüber verloren das es wie im obersten Beispiel nicht möglich wäre oder gegen Regeln verstößt eine Objekt Instanz mehrfach zu verwenden, allerdings finde ich auch keine Beispiele dort wo dies auch geschieht.

himitsu 20. Mär 2021 10:51

AW: ACHTUNG: Fehler in TZipFile ... Instanz unbedingt nur einmal verwenden
 
Das ist jetzt nicht deren Ernst?
Der Fehler existiert schon seit mindestens 10.1. :wall:

https://quality.embarcadero.com/browse/RSP-16963

Der schöne Günther 20. Mär 2021 11:07

AW: ACHTUNG: Fehler in TZipFile ... Instanz unbedingt nur einmal verwenden
 
Danke fürs Dranbleiben. Ich prüfe jetzt besser auch einmal ob das in unserer Software evtl. auch auftreten kann... 😱

TurboMagic 20. Mär 2021 15:10

AW: ACHTUNG: Fehler in TZipFile ... Instanz unbedingt nur einmal verwenden
 
Zitat:

Zitat von himitsu (Beitrag 1485593)
Das ist jetzt nicht deren Ernst?
Der Fehler existiert schon seit mindestens 10.1. :wall:

https://quality.embarcadero.com/browse/RSP-16963

Ja, das ist blöd, dass der immer noch nicht gefixt ist.
Das sollten die mal anpacken.
Ein weiterer Tipp: Teilnehmer von Betatests haben noch mehr
Möglichkeiten die Dinge positiv zu beeinflussen...

Grüße
TurboMagic

himitsu 20. Mär 2021 21:50

AW: ACHTUNG: Fehler in TZipFile ... Instanz unbedingt nur einmal verwenden
 
Selbst wenn man den Fehler nicht behoben bekommt, gibt es eine vorübergehende schnelle Lösung.
Beim zweiten Aufruf von Open eine Exception auslösen, dass sowas nicht möglich ist.


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:04 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz