PC SOFT

FOROS PROFESIONALES
WINDEVWEBDEV y WINDEV Mobile

Inicio → WINDEV 2025 → Problème ZIP en Windev 24 ou antérieur
Problème ZIP en Windev 24 ou antérieur
Iniciado por vincent, 30,jun. 2019 21:57 - 5 respuestas
Publicado el 30,junio 2019 - 21:57
Bonjour à tous,
J'ai besoin de ziipper .en un zip, l'ensemble des fichier TXT se trouvant dans un seul répertoire
En utilisant le mode commande de 7z, c'est simple et gratuit.
POUR TOUTE CHAÎNE sUnFichier DE ResListeFichier SEPAREE PAR RC
sFichier=sUnFichier // fichier source
LanceAppli(gsRepZipExe+"7z a -bd "+"Toto.zip"+" "+sFichier)
FIN


Pour éviter d'utiliser un composant externe 7z, je voudrais faire la même chose en WinDev
Le problème est que le nom du fichier sFichier change , il faut que je refaire zipcrée(MonAchive) qui efface le contenu du fichier TOTO.zip. En final, je n'ai que le dernier fichier txt dans Toto.zip. ZipAjouteFichier n'ajoute pas mais il écrase.


Merci de votre aide
Miembro registrado
24 mensajes
Publicado el 01,julio 2019 - 08:06
Bonjour,

zipOuvre ne convient-il pas ?
Miembro registrado
2.321 mensajes
Publicado el 01,julio 2019 - 08:41
Bonjour,

MonArchive est un zipArchive
// Création de l'archive
ResCréation = zipCrée(MonArchive, "C:\Temp\Archive.zip")
SI ResCréation = 0 ALORS
// Ajout d'un fichier dans une archive
POUR TOUTE chaîne sUnFichier de ResListeFichier SEPAREE PAR RC
ResAjoutFichier = zipAjouteFichier(MonArchive, ...
"C:\MonRépertoire\MesFichiers\sUnFichier", zipDisque)
FIN
// Affichage du message d'erreur si le fichier n'a pas été ajouté
SI ResAjoutFichier <> 0 ALORS
Erreur(zipMsgErreur(ResAjoutFichier))
FIN
FIN


--
Bon dev,
Jean-Pierre
Publicado el 01,julio 2019 - 09:05
Bonjour,

Au fait, pour simplifier ma demande, j'ai omis un détail important.
Chaque fichier TXT comporte dans son nom la date du fichier.
Exemples : Fic1_20190615.txt, Fic2_20190615.txt, fic1_20190616.txt ….. Les fichiers de dates différentes ne sont pas triés.
J'ai besoin donc un zip groupé par date.
Voici le code plus détaillé de 7z :
POUR TOUTE CHAÎNE sUnFichier DE ResListeFichier SEPAREE PAR RC
sFichier=sUnFichier // fichier source
sDateFic=pExtactDate(sfichier) //me donne par exemple "20190615"
// je fabriques mon fichier zip de destinaton
sFIcZip="MonArchive_"+sdateFic
LanceAppli(gsRepZipExe+"7z a -bd "+sFicZip+" "+sFichier)
// 7z ajoute le fichier en cours dans le sficZip correspondant sans se poser la queston
FIN

En WinDev, si les dates sont triés, il n'y a pas trop de souci, car je crée un archive par zipcrée(Arcive,sficZi)
et zipAjouteFichier y ajoute bien le fichier en cours

Par contre si un autre fichier qui arrive avec une date qui existe dans le zip avant.

Comme la date a changé par rapport à la précédente, je suis obligé de créer un nouveau archive avec une date qui existe.

Cette action création me vide le zip existant.

C'est donc là le problème !

Merci de votre aide

Vincent
Publicado el 01,julio 2019 - 10:24
Vincent a exprimé avec précision :
Bonjour à tous,
J'ai besoin de ziipper .en un zip, l'ensemble des fichier TXT se trouvant
dans un seul répertoire
En utilisant le mode commande de 7z, c'est simple et gratuit.
POUR TOUTE CHAÎNE sUnFichier DE ResListeFichier SEPAREE PAR RC
sFichier=sUnFichier // fichier source
LanceAppli(gsRepZipExe+"7z a -bd "+"Toto.zip"+" "+sFichier)
FIN


Pour éviter d'utiliser un composant externe 7z, je voudrais faire la même
chose en WinDev
Le problème est que le nom du fichier sFichier change , il faut que je
refaire zipcrée(MonAchive) qui efface le contenu du fichier TOTO.zip. En
final, je n'ai que le dernier fichier txt dans Toto.zip. ZipAjouteFichier
n'ajoute pas mais il écrase.


Merci de votre aide


bonjour,

un peu de recherche dans l'aide en ligne en tapant simplement zip il
vous est proposé "Zip, Ajouter des fichiers" et de là vous arrivez sur
la page :
https://doc.pcsoft.fr/fr-FR/?3082038&name=zipAjouteListeFichier

donc il serait intéressant de faire un minimum de recherche avant de
poser une question

--
Cordialement JeAn-PhI
Publicado el 02,julio 2019 - 12:47
Bonjour Mr BSC,

Le code ZipOuvre est la solution.

Je considère que ma demande a trouvé la solution

Merci à tous ceux qui ont répondu et en particulier, merci à Mr BSC qui m' a donné la solution.

Bien cordialement
Vincent