DOCUMENTATION EN LIGNE
DE WINDEVWEBDEV ET WINDEV MOBILE

Aide / WLangage / Fonctions WLangage / Fonctions standard / Fonctions de gestion des archives
  • Exemple 1 : Recherche d'un fichier dans une archive dont le chemin contient la chaîne de caractères "Temp"
  • Exemple 2 : Recherche d'un fichier d'un type donné dans une archive
  • Exemple 3 : Recherche d'un fichier d'un type donné dans une archive xlsx
zipChercheFichier (Exemple)
Exemple 1 : Recherche d'un fichier dans une archive dont le chemin contient la chaîne de caractères "Temp"
Exemple 2 : Recherche d'un fichier d'un type donné dans une archive
Exemple 3 : Recherche d'un fichier d'un type donné dans une archive xlsx
Ce code permet de rechercher un fichier dans une archive xlsx, de le modifier et de le remplacer dans l'archive.
// Nom physique du fichier (les fichiers xlsx sont des ZIP !)
sNomFichierXlsx est une chaîne = fRepDonnées() + "\Niveau 1.xlsx"
// Nom logique pour utilisation avec les fonctions Zip
sZipFichierXlsx est une chaîne = "ZipFichierXlsx"
 
// Ouverture
bZipOuvert est un booléen
bZipOuvert = (zipOuvre(sZipFichierXlsx, sNomFichierXlsx, zipEcriture)=0)
// Ouverture OK ?
SI PAS bZipOuvert ALORS
Erreur("Echec de l'ouverture de la feuille Excel", ErreurInfo())
RETOUR
FIN
// Recherche d'un fichier dans le ZIP
nIndiceFichiersheet1xmlrels est un entier
// Recherche à l'identique en spécifiant le chemin
nIndiceFichiersheet1xmlrels = zipChercheFichier(sZipFichierXlsx, ...
"xl\worksheets\_rels\sheet1.xml.rels", Vrai)
// Fichier trouvé dans le zip ?
SI nIndiceFichiersheet1xmlrels < 1 ALORS
// Fichier non trouvé
Erreur("Fichier non trouvé dans le fichier XLSX")
SINON
// Récupère le contenu du fichier trouvé
bufFichiersheet1xmlrels est un Buffer
bufFichiersheet1xmlrels = zipExtraitFichier(sZipFichierXlsx, ...
nIndiceFichiersheet1xmlrels, zipEnMémoire)
// Ce fichier est un XML, on le charge dans une variable XMLDocument
xmlSheet1 est un xmlDocument = XMLOuvre(bufFichiersheet1xmlrels, depuisChaîne)
SI ErreurDétectée = Vrai ALORS
Erreur("Impossible de charger le fichier XML se trouvant dans le fichier XLSX", ...
ErreurInfo())
SINON
// Modification des liens pour remplacer des chemins
POUR nNumLien = 1 _À_ xmlSheet1.Relationships.Relationship..Occurrence
xmlSheet1.Relationships.Relationship[nNumLien]:Target = ...
Remplace(xmlSheet1.Relationships.Relationship[nNumLien]:Target, ...
"file:///\\ancienserveur\", "file:///\\nouveauserveur\", SansCasse)
FIN
// Récupère le XML modifié dans le buffer
bufFichiersheet1xmlrels = XMLConstruitChaîne(xmlSheet1)
// Supprime le fichier existant dans le XLSX (dans le ZIP)
SI zipSupprimeFichier(sZipFichierXlsx, nIndiceFichiersheet1xmlrels) <> 0 ALORS
Erreur("Impossible de supprimer le fichier XML se trouvant dans le fichier XLSX "+ ...
"pour le mettre à jour", ErreurInfo())
SINON
// On met le nouveau fichier à la place
SI zipAjouteFichier(sZipFichierXlsx, bufFichiersheet1xmlrels, ...
zipEnMémoire, "xl\worksheets\_rels\sheet1.xml.rels") <> 0 ALORS
Erreur("Impossible d'ajouter le nouveau fichier XML se trouvant " + ...
"dans le fichier XLSX pour le mettre à jour", ErreurInfo())
SINON
Info("Modifications effectuées avec succès")
FIN
FIN
FIN
FIN
 
// Dans tous les cas à la fin
FIN:
// Si le zip du xlsx est ouvert on le ferme
SI bZipOuvert ALORS zipFerme(sZipFichierXlsx)
 
Version minimum requise
  • Version 9
Documentation également disponible pour…
Commentaires
Cliquez sur [Ajouter] pour publier un commentaire

Dernière modification : 25/05/2022

Signaler une erreur ou faire une suggestion | Aide en ligne locale