Packer-Library
Packer-Library
Hallo
In der Hilfe steht, das PureBasic interne Packerfunktionen besitzt.
Bis jetzt funktioniert alles sehr gut.
PureBasic entpackt die Datei so wie es soll, nur werden die Attribute nicht übernommen.
Es ist möglich die Attribute selber zu setzen, aber wen man nicht abfragen kann, ob sie gesetzt sind, dann wird es schwer.
Ist es irgendwie möglich diese Informationen zu bekommen ?
Externe Dateien wie z.B. 7z.dll möcht ich nicht verwenden.
Kann jemand weiter helfen ?
Grüße
Lite
In der Hilfe steht, das PureBasic interne Packerfunktionen besitzt.
Bis jetzt funktioniert alles sehr gut.
PureBasic entpackt die Datei so wie es soll, nur werden die Attribute nicht übernommen.
Es ist möglich die Attribute selber zu setzen, aber wen man nicht abfragen kann, ob sie gesetzt sind, dann wird es schwer.
Ist es irgendwie möglich diese Informationen zu bekommen ?
Externe Dateien wie z.B. 7z.dll möcht ich nicht verwenden.
Kann jemand weiter helfen ?
Grüße
Lite
- ts-soft
- Beiträge: 22292
- Registriert: 08.09.2004 00:57
- Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel - Wohnort: Berlin
Re: Packer-Library
Wenn es das ZipFormat sein soll und nur unter Windows laufen darf (oder eingeschränkt unter Linux),
dann kannste das ZipEx Modul verwenden, um Dateiattribute im FileComment zu speichern, um sie
wiederherzustellen.
Gruß
Thomas
dann kannste das ZipEx Modul verwenden, um Dateiattribute im FileComment zu speichern, um sie
wiederherzustellen.
Gruß
Thomas
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Re: Packer-Library
@Thomas
Vielen Dank. Das sieht schon mal sehr beeindruckend aus.
Gibts sowas auch für das Dateiformat .7z ?
Entpacken würde reichen
Lite
Vielen Dank. Das sieht schon mal sehr beeindruckend aus.
Gibts sowas auch für das Dateiformat .7z ?
Entpacken würde reichen
Lite
Re: Packer-Library
Hallo
Mir ist vorhin was seltsames aufgefallen.
Meiner Meinung ist es ein Bug in der 7z-Library.
Der Fehler tritt nur auf, wen mehrere Dateien im Paket sind.
Wen die erste Datei eine große Datei ist, dauert das entpacken der nachfolgenden Dateien auch sehr lange. Gefühlt so lange wie die grosse Datei, obwohl sie nur ganz klein sind.
Ein Beispiel:
Dateien die in der Paket.7z Datei sind.
1. Datei: a-test.zip (Größe: 40 MB)
2. Datei: info.txt ( 50 kb)
3. Datei: Bild.jpg ( 100 kb)
Hier mein Code:
Sollte es ein Fehler sein, könnte es jemand unter Bugs im englischen Forum posten.
Da mein Englisch alles andere als verständlich ist. Danke.
Grüße
Lite
--
Mir ist vorhin was seltsames aufgefallen.
Meiner Meinung ist es ein Bug in der 7z-Library.
Der Fehler tritt nur auf, wen mehrere Dateien im Paket sind.
Wen die erste Datei eine große Datei ist, dauert das entpacken der nachfolgenden Dateien auch sehr lange. Gefühlt so lange wie die grosse Datei, obwohl sie nur ganz klein sind.
Ein Beispiel:
Dateien die in der Paket.7z Datei sind.
1. Datei: a-test.zip (Größe: 40 MB)
2. Datei: info.txt ( 50 kb)
3. Datei: Bild.jpg ( 100 kb)
Hier mein Code:
Code: Alles auswählen
UseLZMAPacker()
TargetDir$="c:\test3\"
; Öffnet die gepackte Datei
If OpenPack(0, "c:\test1\Paket.7z", #PB_PackerPlugin_LZMA)
; Listet alle Einträge auf
If ExaminePack(0)
While NextPackEntry(0)
Debug "Name: " + PackEntryName(0) + ", Size: " + PackEntrySize(0)+"--"+TargetDir$+PackEntryName(0)
MessageRequester("vor",PackEntryName(0))
ret = UncompressPackFile(0,TargetDir$+PackEntryName(0),PackEntryName(0))
MessageRequester("","nach")
Wend
EndIf
ClosePack(0)
EndIf
Da mein Englisch alles andere als verständlich ist. Danke.
Grüße
Lite
--
Re: Packer-Library
Hallo lite,
das könnte dran liegen das deine .7z solide gepackt wurde. (Ist glaube ich Standard bei 7-zip)
Dann müss bei jedem extrahieren der gesamte block dekomprimiert werden und das dauert.
das könnte dran liegen das deine .7z solide gepackt wurde. (Ist glaube ich Standard bei 7-zip)
Dann müss bei jedem extrahieren der gesamte block dekomprimiert werden und das dauert.
PureBasic 5.46 LTS (Windows x86/x64) | windows 10 x64 Oktober failure
Re: Packer-Library
Das Problem daran ist, wen wir das oben genannte Beispiel nehmen.
Dauert das entpacken der 3 Dateien ca. 30 Sekunden.
Weil die erste Datei (große) schon 10 Sekunden braucht.
Würde ich jetzt die grosse Datei aus dem Paket nehmen,
dauert das entpacken der zwei kleinen Dateien nur 2 Sekunden.
Das kann doch nicht sein.
Lite
Dauert das entpacken der 3 Dateien ca. 30 Sekunden.
Weil die erste Datei (große) schon 10 Sekunden braucht.
Würde ich jetzt die grosse Datei aus dem Paket nehmen,
dauert das entpacken der zwei kleinen Dateien nur 2 Sekunden.
Das kann doch nicht sein.
Lite
Re: Packer-Library
Pack die 7z mal neu und setze die "solid block size" zu non-solid
Dieses Archive sollte dann so schnell sein wie Du meinst.
Dieses Archive sollte dann so schnell sein wie Du meinst.
PureBasic 5.46 LTS (Windows x86/x64) | windows 10 x64 Oktober failure
Re: Packer-Library
@John
Jetzt geht es schneller.
Nur kann das nicht die Lösung sein, da die Pakte nicht von mir kommen.
Normalerweise sind in den Paketen ein paar hunderte Dateien enthalten.
Das entpacken dauert dann eine Ewigkeit, das kann kein Mensch erwarten.
So wie die Library jetzt ist, ist sie für mich unbrauchbar.
Lite
Jetzt geht es schneller.
Nur kann das nicht die Lösung sein, da die Pakte nicht von mir kommen.
Normalerweise sind in den Paketen ein paar hunderte Dateien enthalten.
Das entpacken dauert dann eine Ewigkeit, das kann kein Mensch erwarten.
So wie die Library jetzt ist, ist sie für mich unbrauchbar.

Lite
Re: Packer-Library
Die Library kann dafür nichts, sondern der Solid-Block-Modus mit dem die Pakete gepackt sind, wie _JON_ schon geschrieben hat.lite hat geschrieben:So wie die Library jetzt ist, ist sie für mich unbrauchbar.
Bei diesem Modus werden alle Dateien als eine Datei betrachtet und gepackt. Dadurch ist es nicht möglich, einzelne Dateien zu entpacken, ohne die vorherigen Dateien ebenfalls zu entpacken.
Ausführlichere Informationen findest du hier: http://de.wikipedia.org/wiki/Progressive_Kompression

Warum OpenSource eine Lizenz haben sollte :: PB-CodeArchiv-Rebirth :: Pleasant-Dark (Syntax-Farbschema) :: RegEx-Engine (kompiliert RegExes zu NFA/DFA)
Manjaro Xfce x64 (Hauptsystem) :: Windows 10 Home (VirtualBox) :: Neueste PureBasic-Version
Re: Packer-Library
Hallo
Ja, jetzt hab ich verstanden wo das Problem liegt. Vielen Dank.
Mir ist das gar nicht aufgefallen, das es bei 7z.exe auch so ist.
Der kleine Unterschied, das 7z.exe gleich mehrere Dateien auf einmal rausholt.
Dadurch merkt man den Effekt nicht.
PureBasic dagegen holt immer nur eine Datei raus.
Deshalb dieser enorme Geschwindigkeitsunterschied.
Würde Purebasic auch mehrere Dateien entpacken wäre es perfekt.
Z.B. mit einen neuen Befehl:
FileList$ ="a-test.zip:info.txt:Bild.jpg"
UncompressPackFileList (0,TargetDir$,FileList$)
oder unterstützt der Decompress-Befehl Dateilisten ?
Grüße
Lite
Ja, jetzt hab ich verstanden wo das Problem liegt. Vielen Dank.
Mir ist das gar nicht aufgefallen, das es bei 7z.exe auch so ist.
Der kleine Unterschied, das 7z.exe gleich mehrere Dateien auf einmal rausholt.
Dadurch merkt man den Effekt nicht.
PureBasic dagegen holt immer nur eine Datei raus.
Deshalb dieser enorme Geschwindigkeitsunterschied.
Würde Purebasic auch mehrere Dateien entpacken wäre es perfekt.
Z.B. mit einen neuen Befehl:
FileList$ ="a-test.zip:info.txt:Bild.jpg"
UncompressPackFileList (0,TargetDir$,FileList$)
oder unterstützt der Decompress-Befehl Dateilisten ?
Grüße
Lite