|
|
|
|
|
- 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) Â
Documentation également disponible pour…
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|