Autor Beitrag
Stephan.Woebbeking
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 97



BeitragVerfasst: Di 08.05.12 17:26 
Hallo *,

ich arbeite mit dem ZipMaster191 um Dateien aus einem ZIP Archiv (mit Password) zu extrahieren. Funktionieren tut das Ganze soweit auch, allerdings kommt es mitunter vor, dass der Nutzer mehrfach denselben UseCase (mit den gleichen) Daten durchlaufen wird. Das bedeutet für mich, dass ich zweimal hintereinander die gleiche ZIP Datei öffne und die gleiche Datei entpacken möchte. Den ganzen Summs das zwischenzuspeichern wollte ich mir schenken, stelle nur aber fest, dass ich nicht erneut die gleiche Datei (andere hab ich noch nicht probiert, würde das Problem auch nicht lösen) entpacken kann. In der Zeile

ausblenden Delphi-Quelltext
1:
      memStream := ZipMaster191.ExtractFileToStream( szResName );					


Bekomme ich immer

ausblenden Quelltext
1:
   Unknown error in List() functionZugriffsverletzung bei Adresse 00404F26 in Modul 'ServiceToolDr.exe'. Schreiben von Adresse 0070Fa98					


Weiß jemand Rat? Ich hab schon probiert:

- CleanInstance
- Mache ein .Free auf meinen Stream
- Habe schon versucht, jedesmal eine temporäre Instanz des ZipMaster mit .Create einzurichten, bin aber auch nicht weiter gekommen
- Gesucht nach Initialisierungsfunktionen

Falls jemand das verwendet und ein kurzes Listing für mich hat, wäre ich dankbar; evt. hat das Problem ja noch wer?

Danke,
Stephan
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10181
Erhaltene Danke: 1254

W10ent
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Di 08.05.12 18:09 
Moin!

user profile iconStephan.Woebbeking hat folgendes geschrieben Zum zitierten Posting springen:
ich arbeite mit dem ZipMaster191
Ich bin ja mittlerweile ein echter Fan von Abbrevia, das muss ich zugeben. :beer:

user profile iconStephan.Woebbeking hat folgendes geschrieben Zum zitierten Posting springen:
Den ganzen Summs das zwischenzuspeichern wollte ich mir schenken,
Hm, warum du diese Probleme hast, weiß ich nicht, aber wenn es doch schon dazu kommt, scheint mir das Zwischenspeichern im %TEMP%-Verzeichnis noch keine so schlechte Wahl zu sein... 8)
user profile iconStephan.Woebbeking hat folgendes geschrieben Zum zitierten Posting springen:
ausblenden Delphi-Quelltext
1:
memStream := ZipMaster191.ExtractFileToStream( szResName );					
Hier hast du doch schon einen Memory-Stream. Wenn die Daten nicht soo riesig sind, lass sie doch entweder einfach im RAM rumliegen oder speichere sie aus dem MemStream zwischen, fertig. :nixweiss:

cu
Narses

_________________
There are 10 types of people - those who understand binary and those who don´t.
Stephan.Woebbeking Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 97



BeitragVerfasst: Di 22.05.12 11:40 
Hoi, habe tatsächlich mittlerweile auf den vorgeschlagenen Abbrevia umgestellt, danke für die Empfehlung! Die Wiederverwendung ZipMaster ist mir nicht mehr gelungen, schade eigentlich. Natürlich kann man mit Zwischenspeicherung usw. das auch erreichen, aber das mehrfache Öffnen passiert nicht so häufig und deshalb war es mir den Aufwand nicht wert. Letztlich würde ich damit ja nur das "Fehlverhalten" der Komponente ausbügeln und das kann ich natürlich auch einfach indem ich eine funktionierende nutze - wie in diesem Fall. Damit ist das Thema nicht wirklich gelöst, sondern lediglich umgangen. Trotzdem könnte die Info ja mal für die Nachwelt hilfreich sein.

CU, Stephan