Zip Archive erstellen, so gehts wieder!

Hier könnt Ihr gute, von Euch geschriebene Codes posten. Sie müssen auf jeden Fall funktionieren und sollten möglichst effizient, elegant und beispielhaft oder einfach nur cool sein.
PureFreak
Beiträge: 11
Registriert: 07.01.2013 20:04

Zip Archive erstellen, so gehts wieder!

Beitrag von PureFreak »

Hallo!

Da ja seit Purebasic 5.2 die Packerlib probleme macht und auch unter der letzten Ausgabe 5.22 nicht
funktioniert wie sie soll, habe ich einige Versuche gemacht und eine Lösung gefunden die (
zumindest bei mir) funktionert.

Ich möchte hier kein Programm vorstellen, sondern einfach erklären was getan werden muß
um größere Zip Archive zu erstellen. Die Probleme beim packen gingen immer los, wenn mehr als
500 Dateien im Archiv waren. Ich habe in meinem Programm einfach nach 450 Dateien das Archiv
geschlossen (Closepack) und anschließend gleich wieder mit Openpack geöffnet. Auf diese Art
funktionierte die Erstellung eines Archivs mit ca. 6000 Dateien Problemlos.

Allerdings hatte diese Vorgehensweise einen kleinen Haken. Mein Packprogramm das diverse
Ordner auf unserem Server (Server 2012 Betriebssystem) in festgelegten Zeiträumen sichert
lief beim Starten mit der Maus problemlos durch. Wurde es allerdings als geplanter Task
gestartet lief das Programm auf einen Fehler. Erst nachdem ich zwischen Closepack und
Openpack 1 Sekunde wartezeit eingefügt habe läuft alles ohne Probleme. Vielleicht kann mir
jemand hier erklären wo der Unterschied zwischen dem Starten mit der Maus (doppelklick auf
das Icon) und dem starten als geplantem Task liegt.

Ich hoffe das jemand mit dem Hinweis etwas anfangen kann und die Packerlib bei Ihm wieder
funktioniert.

gruß Jürgen
Benutzeravatar
TroaX
Beiträge: 684
Registriert: 08.03.2013 14:27
Computerausstattung: PC: Ryzen 9 3950X, 96 GB RAM, RX6800XT, 2.5 TB SSD, 21:9 Display, Linux Mint | Lappi: Ryzen 7 5800H, 16 GB RAM, 1 TB SSD, Linux Mint
Wohnort: NRW
Kontaktdaten:

Re: Zip Archive erstellen, so gehts wieder!

Beitrag von TroaX »

Läuft der geplante Task an- oder abgemeldet ab?

Ich denke mal, das es an der Prozesspriorität liegt. Aber mir war so als hätte ich mal gelesen, das geplante Tasks mit niedriger Prio ausgeführt werden. Tasks mit niedriger Prio werden gezwungen, Prozessorzeit freizugeben. Wenn dein Programm das nicht von selbst tut, wurde es denke ich mal vom OS dazu gezungen. Durch das Delay() hast du Prozessorzeit freigegeben und desegen lässt dein OS die Backupgeschichte gewähren.

Nur eine Vermutung. Bin mir da aber auch nicht ganz sicher.
PC: Ryzen 9 3950X | 96 GB RAM | RX6800XT | 2,5 TB NVMe | Linux Mint
Notebook: 16" 3:2 | Ryzen 7 5800H | 16 GB RAM | Radeon Vega | 1TB NVMe | Linux Mint
NAS: Fritz.Box 5690 Pro (Nur für Keepass-DB)
Coding: Purebasic, Spiderbasic, GDevelop, Javascript/Node
PureFreak
Beiträge: 11
Registriert: 07.01.2013 20:04

Re: Zip Archive erstellen, so gehts wieder!

Beitrag von PureFreak »

Hallo,

der Task läuft angemeldet und mit höchster Priorität. Habe alle Einstellungen hin und her
ausprobiert, ohne erfolg. Also an den Einstellungen kann es nicht liegen. Habe auch
versucht das Programm aus einem Batchfile heraus zu starten. Leider war das Ergebniss
immer das selbe.

Die Idee mit der Prozesspriorität halt ich für interessant, denke aber nicht das es daran liegt.
Das Programm lief ja bereits mehrere Wochen problemlos bis es von heute auf morgen seinen
Dienst verweigerte. Ich möcht jetzt, da die Sicherung wieder läuft, nichts mehr ändern. Das ganze
hat mich ja genug Zeit gekostet.

Aber Danke für Deine Hilfe.

gruß Jürgen
Benutzeravatar
Rudi
Beiträge: 143
Registriert: 22.04.2010 18:28
Wohnort: #PB_Any

Re: Zip Archive erstellen, so gehts wieder!

Beitrag von Rudi »

Mal 'ne kurze Frage: Machst Du eine If-Abfrage vor AddPackFile() ?
Win7 (x64)PB 5.4x (x86)5,7 Windows-LeistungsindexSuche
PureFreak
Beiträge: 11
Registriert: 07.01.2013 20:04

Re: Zip Archive erstellen, so gehts wieder!

Beitrag von PureFreak »

Hallo Rudi!

Schande über mein Haupt!

Ja ich mache eine IF-Abfrage!

Ist sogar ganz wichtig unter Server2012 (unter Windows 7 lief es auch ohne).

Und zwar schreibe ich derzeit 400 Files in das Archiv. Danach wird es geschlossen und abgefragt ob die Archivdatei noch
geöffnet ist. Erst wenn sie nicht mehr offen ist wird das Archiv mit OpenArchiv neu geöffnet. Die Abfrage ist nötig da
die Dateien im Hintergrund gepackt werden und man keine Rückmeldung bekommt wann der Packer fertig ist. Habe es
vergessen zu erwähnen da ich das Programm nicht bei mir auf dem Rechner habe sondern die jetzige Version nur auf
unserem Server liegt. Wenn ich Zeit habe überarbeite ich mal den Code. Der ist nämlich durch die ganze rumprobiererei
alles andere als ansehnlich. Außerdem ist das ganze etwas Quick and Dirty Programmiert, aber es läuft jetzt.

Falls Du Interesse hast schicke ich Dir auch den Code. Aber wie gesagt ist etwas unübersichtlich und schlecht
kommentiert.

Gruß Jürgen
Benutzeravatar
Rudi
Beiträge: 143
Registriert: 22.04.2010 18:28
Wohnort: #PB_Any

Re: Zip Archive erstellen, so gehts wieder!

Beitrag von Rudi »

Habe mich in der Vergangenheit recht ausgiebig mit der ZIP-Lib beschäfigt und dabei das beschriebene Problem bei UncompressPackFile() festgestellt.

Kannst mir ja mal den Code schicken oder den relevanten Abschnitt hier posten!

Gruß, Rudi
Win7 (x64)PB 5.4x (x86)5,7 Windows-LeistungsindexSuche
Antworten