PureZIP 1.92
PureZIP 1.92
Pour info, la nouvelle version de PureZIP devrait supporter les noms de fichiers non anglais avec accents 'é', tremas 'ü', etc ...
http://www.purebasic.fr/english/viewtopic.php?t=15322
http://www.purebasic.fr/english/viewtopic.php?t=15322
Dernière modification par gnozal le lun. 27/août/2007 10:57, modifié 1 fois.
Probleme de pureZip avec les exe
Salut gnozal
j'utilise la dernière version de purezip mais jai des problemes pour lancer les fichiers exécutables commes les setup et les applications. jai souvent ce message d'erreur "nomprogramme n'est pas une application Win32 valide"
j'utilise la dernière version de purezip mais jai des problemes pour lancer les fichiers exécutables commes les setup et les applications. jai souvent ce message d'erreur "nomprogramme n'est pas une application Win32 valide"

Re: Probleme de pureZip avec les exe
Désolé, je ne comprends pas le rapport entre 'lancer les fichiers exécutables' et PureZIP ...SpaceMan a écrit :Salut gnozal
j'utilise la dernière version de purezip mais jai des problemes pour lancer les fichiers exécutables commes les setup et les applications. jai souvent ce message d'erreur "nomprogramme n'est pas une application Win32 valide"
Un petit bout de code ?
excuse moi je me suis mal exprimé.
je voulais dire qu'après compression les fichiers exécutables ne fonctionnent plus. voici le code
en supposant que dans le dossier "E:\TBXP\" se trouvent plusieurs exécutables.
je voulais dire qu'après compression les fichiers exécutables ne fonctionnent plus. voici le code
Code : Tout sélectionner
nom_archive.s = "E\monZip.zip"
compression.s = "E:\TBXP\*.*"
PureZIP_AddFiles(nom_archive,compression , #PureZIP_StorePathRelative ,#PureZIP_Recursive)
;PureZIP_SetCompressionAlgorithm(#Z_NO_COMPRESSION)
PureZIP_Archive_Close()
Ton code est faux.
PureZIP_Archive_Create() et PureZIP_Archive_Close() servent à ouvrir / fermer un fichier en association avec les fonctions PureZIP_Archive_*().
Il ne faut pas les utiliser avec les autres fonctions.
Dans ton code, PureZIP_Archive_Close() est de trop.
Essaie voir sans.
Note : si tu utilises PB4.00, il faut upgrader à PB4.02 (ou PB4.10), car PB4.00 avait un gros bug dans la bibliothèque FILE relatif à la fonction Lof().
PureZIP_Archive_Create() et PureZIP_Archive_Close() servent à ouvrir / fermer un fichier en association avec les fonctions PureZIP_Archive_*().
Il ne faut pas les utiliser avec les autres fonctions.
Dans ton code, PureZIP_Archive_Close() est de trop.
Essaie voir sans.
Code : Tout sélectionner
nom_archive.s = "E\monZip.zip"
compression.s = "E:\TBXP\*.*"
PureZIP_AddFiles(nom_archive,compression , #PureZIP_StorePathRelative ,#PureZIP_Recursive)
Ajout de dossier
Salut gnozal
j'utilise cette procedure pour Archiver le contenu du dossier Temp mais je voudrais plutôt ajouter le dossier et son contenu à l'archive.
exemple
je vousdrais utiliser la procedure pour ajouter le dossier temp à l'archive(et tout son contenu)
j'utilise cette procedure pour Archiver le contenu du dossier Temp mais je voudrais plutôt ajouter le dossier et son contenu à l'archive.
exemple
Code : Tout sélectionner
C:\Temp\
--->PB\; se trouve dans Temp et contient les 2 dossiers ci dessous
mondoc.doc
Previsions.xls
--->Free.LIB;se trouve dans C:\Temp\
--->Compressor.pb;se trouve dans C:\Temp\
Code : Tout sélectionner
Procedure Add2ZIP(Chemin.s, Fichiers.s)
Protected Rep.l, entre.s
If Not Right(Chemin, 1) = "\" : Chemin+"\" : EndIf
If Not Right(Fichiers, 1) = "\" : Fichiers+"\" : EndIf
Debug Chemin
Rep = ExamineDirectory(#PB_Any, Chemin, "")
If Rep
While NextDirectoryEntry(Rep)
entre = DirectoryEntryName(Rep)
If entre = "." Or entre = ".."
Continue
ElseIf DirectoryEntryType(Rep) = #PB_DirectoryEntry_File
PureZIP_Archive_Compress(RemoveString(Chemin+entre, Fichiers), #True)
Debug "ZIP: "+RemoveString(Chemin+entre, Fichiers)+" ("+Str(FileSize(Chemin+entre))+")"
Else
Add2ZIP(Chemin+entre+"\", Fichiers)
EndIf
Wend
FinishDirectory(Rep)
EndIf
EndProcedure
Archive$ = "C:\Archive.zip"
RepSource$ = "C:\Temp\"
;SetCurrentDirectory_(@RepSource$)
If PureZIP_Archive_Create(Archive$, #APPEND_STATUS_CREATE)
Add2ZIP(RepSource$, RepSource$)
PureZIP_Archive_Close() : CloseWindow(Window_0)
EndIf
Re: Ajout de dossier
Pour ajouter tout un répertoire et son contenu à une archive, on peut utiliser ceci :SpaceMan a écrit :Salut gnozal
j'utilise cette procedure pour Archiver le contenu du dossier Temp mais je voudrais plutôt ajouter le dossier et son contenu à l'archive.
PureZIP_AddFiles("c:\Archive.zip", "c:\temp\*.*", #PureZIP_StorePathRelative, #PureZIP_Recursive)
gnozal
c'est le dossier avec son contenu qui doivent etre dans l'archive.
justement je n'ai pas le repertoire et son contenu mais j'ai plutot dans l'archive le contenu du dossier Temp(repertoire) et je voudrais utiliser la procedure ci haut qui fais la meme chose que la fonction PureZIP_AddFiles()Pour ajouter tout un répertoire et son contenu à une archive, on peut utiliser ceci :
PureZIP_AddFiles("c:\Archive.zip", "c:\temp\*.*", #PureZIP_StorePathRelative, #PureZIP_Recursive)
c'est le dossier avec son contenu qui doivent etre dans l'archive.
http://www.purebasic.fr/english/viewtopic.php?t=28545SpaceMan a écrit :gnozaljustement je n'ai pas le repertoire et son contenu mais j'ai plutot dans l'archive le contenu du dossier Temp(repertoire) et je voudrais utiliser la procedure ci haut qui fais la meme chose que la fonction PureZIP_AddFiles()Pour ajouter tout un répertoire et son contenu à une archive, on peut utiliser ceci :
PureZIP_AddFiles("c:\Archive.zip", "c:\temp\*.*", #PureZIP_StorePathRelative, #PureZIP_Recursive)
c'est le dossier avec son contenu qui doivent etre dans l'archive.
Merci pour cette réponse
mais je crois que tu m'as mal compris donc j'ai reposé la question
en fait j'ai un dossier "temp" contenant un fichier exo.xls
je veux ajouter ce dossier à l'archive. Alors que pureZip ajoute seulemnt le fichier exo.xls
donc je voudrais utiliser la procedure ci haut pour le faire
Merci de m'accorder du temps que tu n'en as pas je sais
mais je crois que tu m'as mal compris donc j'ai reposé la question
en fait j'ai un dossier "temp" contenant un fichier exo.xls
je veux ajouter ce dossier à l'archive. Alors que pureZip ajoute seulemnt le fichier exo.xls

donc je voudrais utiliser la procedure ci haut pour le faire
Merci de m'accorder du temps que tu n'en as pas je sais

@ Gnozal 
bien ta lib !!
cependant il manque un element essentiel !!
le BREAK !! en effet si au moment de la compression d'un GROS dossier
l'utilisateur de mon prg de backup, veux arreter la compression parcequ'il trouve cela tros long par exemple, il n'existe aucun moyen d'arrêter ta procedure PureZIP_AddFiles c'est balot quand meme
si tu m'ajoute ça, ce sera Noel

bien ta lib !!

cependant il manque un element essentiel !!

le BREAK !! en effet si au moment de la compression d'un GROS dossier
l'utilisateur de mon prg de backup, veux arreter la compression parcequ'il trouve cela tros long par exemple, il n'existe aucun moyen d'arrêter ta procedure PureZIP_AddFiles c'est balot quand meme

si tu m'ajoute ça, ce sera Noel

As-tu essayé PureZIP_SetCompressionCallback() ?Dobro a écrit :le BREAK !! en effet si au moment de la compression d'un GROS dossier
Mais il faut utiliser PureZIP_Archive_Compress().PureZIP_SetCompressionCallback(*ProcedureAddress)
Set PureZIP (de)compression callback address.
The callback is called in realtime during compression or decompression.
Procedure MyCallback(FileName.s, Progression.f)
; FileName : current processed file (if applicable)
; Progression : progression percentage)
ProcedureReturn #False
; ProcedureReturn #True to stop the compression
EndProcedure
Returned value [only for PureZIP_Archive_Compress() and PureZIP_Archive_Extract()]
#FALSE : compression / extraction continues
#TRUE : compression / extraction stops !
PureZIP_Archive_Compress() and PureZIP_Archive_Extract() returns #PureZIP_CallbackStop error
suite a une mauvaise utilisation de PureZIP_Archive_Compress()
apres la compression d'un gros dossier, j'ai jamais vu le resultat !!
mais le pire, c'est que depuis, mon windows deconne grave !!
lorsque je clique sur une *.exe
la console Dos se lance, puis se ferme aussitôt puis plus rien !!
les executables ne se lance plus sur mon system..
mis a part les raccourcis qui sont sur mon bureau
et dans le menu demarré !!
lorsque je lance japbe en direct il ne se lance plus
par contre si je lance par le raccourci ça marche ..
mais impossible de choisir un theme (ça m'a remis le theme par defaut !!)
si je clique sur les theme rien ne change !!
Meme apres une réinstallation de japbe !!
je suis mal, je suis mal ....
et ceux meme apres reboot
et meme apres derniere config valable ...
connaissez vous un utilitaire qui puis mettre de l'ordre dans mon system ?
apres la compression d'un gros dossier, j'ai jamais vu le resultat !!
mais le pire, c'est que depuis, mon windows deconne grave !!
lorsque je clique sur une *.exe
la console Dos se lance, puis se ferme aussitôt puis plus rien !!

les executables ne se lance plus sur mon system..

mis a part les raccourcis qui sont sur mon bureau
et dans le menu demarré !!
lorsque je lance japbe en direct il ne se lance plus
par contre si je lance par le raccourci ça marche ..
mais impossible de choisir un theme (ça m'a remis le theme par defaut !!)
si je clique sur les theme rien ne change !!
Meme apres une réinstallation de japbe !!

je suis mal, je suis mal ....
et ceux meme apres reboot
et meme apres derniere config valable ...
connaissez vous un utilitaire qui puis mettre de l'ordre dans mon system ?
As tu essayé de voir où ton fichier compressé a été créé? Si ta manip s'est faite lors d'une compile, regarde dans le code si tu avais mis un chemin valide pour ton archive compressée. Ton problème vient peut-être de là.
Essayes de faire une recherche de l'archive normalement créée quelque part sur ton système.
Sinon, côté utilitaire, je te conseillerai TuneUp Utilities qui peut corriger pas mal d'erreurs système et même le registre. Cela fait quelques années que je m'en sers sans problème. Il m'a même sauvé mon Win Me, c'est pour dire...
Essayes de faire une recherche de l'archive normalement créée quelque part sur ton système.
Sinon, côté utilitaire, je te conseillerai TuneUp Utilities qui peut corriger pas mal d'erreurs système et même le registre. Cela fait quelques années que je m'en sers sans problème. Il m'a même sauvé mon Win Me, c'est pour dire...
Quand tous les glands seront tombés, les feuilles dispersées, la vigueur retombée... Dans la morne solitude, ancré au coeur de ses racines, c'est de sa force maturité qu'il renaîtra en pleine magnificence...Jacobus.