![]() |
SevenZip in den Arbeitsspeicher entpacken
Hallo,
ich hab mehrere Dateien (XML, PNG, TXT), die zu einem Projekt gehören in einer mittels SevenZip archivierten Datei. Diese sollen durch mein Programm auch wieder geladen werden können, dabei aber dann nicht "frei herumliegen", sondern, wenn möglich nur im Arbeitsspeicher sein. Geht das irgendwie? Hat das schon mal jemand gemacht? mfg Florian |
AW: SevenZip in den Arbeitsspeicher entpacken
Soweit ich weiss gibt es da keine einfache Möglichkeit, zumindest nicht für Delphi und 7z-Dateien. Für Zip-Dateie könntest du fündig werden, aber ich kenne da keine Zip-Komponente die das entpacken in z.B. MemoryStreams ermöglichen würde (Abbrevia kann das z.B nicht).
Ich persönlich lege diese Dateien im Temp-Verzeichnis ab und lösche sie beim Programm-Ende wieder. Wenn das Programm allerdings abstürzt oder mittels Task-Manager abgeschossen wird bleiben sie aber liegen. Wie benutzt du 7zip in Delphi? Kommandozeile oder Dll? Dabei fällt mir ein: Theoretisch kannst du über die Konsolen-Version (7z.exe) mit dem Switch -so die Dateien nach StdOut entpacken. Du musst nur die Ausgabe umleiten, damit du die Daten dann im Arbeitsspeicher vorfindest. Das Umleiten des Standart Outputs für ein Konsolenprogramm ist zwar nicht trivial, aber machbar. Ich habe entsprechende Komponenten schon geschrieben... |
AW: SevenZip in den Arbeitsspeicher entpacken
SevenZip wird über die DLL bedient. Mein Programm packt die nötigen Dateien in ein Archiv und soll sie bei einem späteren Start des Programms aus dieser Datei laden können. Wenn ich bis morgen in der Früh keine andere Möglichkeit finde, werde ich sie wohl ins Temp-Verzeichnis entpacken. Ist ja auch nicht so schlimm, aber ich möchte eben nicht, dass der Anwender sofort alle Dateien zu sehen bekommt (wenn er an sie ran will, muss er ja nur das Archiv mit zb 7zip.exe, entpacken).
mfg Florian |
AW: SevenZip in den Arbeitsspeicher entpacken
Schau mal, ob die Dll auch Streams unterstützt
|
AW: SevenZip in den Arbeitsspeicher entpacken
Zitat:
mfg Florian |
AW: SevenZip in den Arbeitsspeicher entpacken
Hi,
als Zipkomponente macht das KZip (aber nicht für neue Delphiversionen nach 2009 verfügbar) oder ZipForge. Für 7z habe ich ncoh nichts vergleichbares gefunden. Grüße |
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:53 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 by Thomas Breitkreuz