PC SOFT

DOCUMENTATION EN LIGNE
DE WINDEVWEBDEV ET WINDEV MOBILE

  • Exemple de la fonction ComposantInfo
ComposantInfo (Exemple)
Exemple de la fonction ComposantInfo
L'exemple suivant permet de lister les patchs utilisés par une application.
// Création d'un tableau de patchs
// permettant de stocker les informations des patchs trouvés
strPatch est une Structure
sNom est une chaîne
nVersion est un entier
FIN
tabPatch est un tableau de 0 strPatch
sInfoPriseEnComptePatch est une chaîne

// Nom complet de l'élément qui accepte les patchs
// dont on veut les informations de patch.
// Cet élément peut être :
// - Un exécutable WINDEV (.EXE)
// - Une bibliothèque WINDEV (.WDL)
// - Un composant WINDEV (.WDK)
sNomCompletElementPatchable est une chaîne

// Dans cet exemple, utilisation de l'exécutable "en cours"
// Test si mode test ?
SI EnModeTest() = Vrai ALORS
// En mode test : Nom de l'exécutable qui a le nom du projet dans le répertoire EXE
sNomCompletElementPatchable = fRepExe() + "\" + ProjetInfo(piNomProjet) + ".exe"
SINON
// En mode normal : Nom de l'exécutable
sNomCompletElementPatchable = ExeInfo(exeNom)
FIN

// Confirmation de l'élément par sélection
sNomCompletElementPatchable = fSélecteur(sNomCompletElementPatchable, ...
"Sélectionnez l'élément dont vous désirez connaître " + ...
"les informations de patch", ...
"Exe, bibliothèque, composant WINDEV" + TAB + "*.exe;*.wd" + RC + ...
"Tous fichiers (*.*)" + TAB + "*.*", "exe;*.wdl;*.wdk", fselOuvre + fselExiste)
// Annulation ?
SI sNomCompletElementPatchable = "" ALORS RETOUR

nVersionEnComptePatch est un entier
QUAND EXCEPTION DANS
nVersionEnComptePatch = ComposantInfo("", ciNuméroPatch, sNomCompletElementPatchable)
FAIRE
Erreur("Impossible de récupérer l'information de version." + ...
"S'il s'agit d'un exécutable avec une bibliothèque externe," + ...
" vous devez indiquer " + ...
"le nom de la bibliothèque. Détails de l'erreur : ", ExceptionInfo())
RETOUR
FIN
sInfoPriseEnComptePatch += [RC]+ ...
ChaîneConstruit("<%1> prendra en compte les patchs qui sont " + ...
"dans une version supérieure ou égal à %2.", ...
fExtraitChemin(sNomCompletElementPatchable, ...
fFichier + fExtension), nVersionEnComptePatch)

// Liste des patchs
sListePatch est une chaîne
sUnPatch est une chaîne
// Les patchs ont le nom de l'exécutable (ou de la bibliothèque ou composant)
// avec une extension WDL et un numéro de version "externe"
sListePatch = fListeFichier(fExtraitChemin(sNomCompletElementPatchable, ...
fFichier + fDisque + fRépertoire) + ".WDL.*", frNonRécursif)
stUnPatch est un strPatch
// Parcours des fichiers de patchs trouvés
POUR TOUTE CHAÎNE sUnPatch DE sListePatch SEPAREE PAR RC
// Si ce n'est pas l'élément lui-même
SI PAS sUnPatch ~= sNomCompletElementPatchable ALORS
// Récupération du nom
stUnPatch:sNom = fExtraitChemin(sUnPatch, fFichier + fExtension)
// Récupération de la version "interne" du patch trouvé
QUAND EXCEPTION DANS
stUnPatch:nVersion = ComposantInfo("", ciNuméroPatch, sUnPatch)
FAIRE
stUnPatch:nVersion = 0
Trace("Impossible de récupérer " + ...
"l'information de version du patch <" + ...
sUnPatch + ">. Détails de l'erreur :", ExceptionInfo())
FIN
// Ajout dans le tableau des patchs
TableauAjoute(tabPatch, stUnPatch)
FIN
FIN

sInfoPriseEnComptePatch += [RC] + ...
"Voici la liste de patchs trouvés dans l'ordre de priorité" + ...
" dans lequel ils sont pris en compte :"
// Tri des patchs par numéro de version "interne" en ordre décroissant
// car les patchs de numéro le plus important sont pris en priorité
TableauTrie(tabPatch, ttMembre, "-nVersion")
POUR TOUT ELEMENT stUnPatch DE tabPatch
// Patch pris en compte ?
SI stUnPatch:nVersion >= nVersionEnComptePatch ALORS
// Oui
sInfoPriseEnComptePatch += [RC] + ...
ChaîneConstruit("Patch <%1>, version %2", ...
stUnPatch:sNom, stUnPatch:nVersion)
SINON
// Non
sInfoPriseEnComptePatch += [RC] + ...
ChaîneConstruit("Patch <%1> NON PRIS EN COMPTE" + ...
", car sa version (%2) est inférieure " + ...
"à celle de l'élément WINDEV (%3)", stUnPatch:sNom, ...
stUnPatch:nVersion, nVersionEnComptePatch)
FIN
FIN
// Affichage des information trouvées
Info(sInfoPriseEnComptePatch)
Version minimum requise
  • Version 15
Documentation également disponible pour…
Commentaires
Cliquez sur [Ajouter] pour publier un commentaire