pictogram Auteur: Patrick Biker
Date: 18 mars 2006
Maj : 21 Mars 2015

Exemples évolués

Chaque exemple montre une utilisation pratique de la fonction du WLangage.

Quand plusieurs syntaxes sont possibles, chacune est illustrée indépendamment.

Revenir à la page des exemples évolués


Le code suivant permet de :

1. Initialiser le champ Arbre,

2. Lister les éléments "fils" du noeud "Desserts" dans l'arbre "RecetteTV". La procédure "DérouleTout" est appelée pour chaque "fils" trouvé. Cette procédure déroule tous les noeuds "fils" enroulés du noeud "Desserts".

3. Enrouler tous les éléments de l'arbre,



// Initialisation de l'arbre
ArbreAjoute(RecetteTV,"Recette" + TAB +"Dessert","GATEAU-.BMP","GATEAU-.BMP")
ArbreAjoute(RecetteTV,"Recette" + TAB +"Dessert"+ TAB +"Glace")
ArbreAjoute(RecetteTV,"Recette" + TAB +"Dessert"+ TAB +"Glace"+ TAB +"Vanille","SUIVAN5-.BMP")
ArbreAjoute(RecetteTV,"Recette" + TAB +"Dessert"+ TAB +"Glace"+ TAB +"Fraise","SUIVAN5-.BMP")
ArbreAjoute(RecetteTV,"Recette" + TAB +"Dessert"+ TAB +"Glace"+ TAB +"Chocolat","SUIVAN5-.BMP")
ArbreDéroule(RecetteTV,"Recette" + TAB +"Dessert"+ TAB +"Glace")
ArbreAjoute(RecetteTV,"Recette" + TAB +"Dessert"+ TAB +"Coupe")
ArbreAjoute(RecetteTV,"Recette" + TAB +"Dessert"+ TAB +"Coupe"+ TAB +"Pêche Melba","SUIVAN5-.BMP")
ArbreAjoute(RecetteTV,"Recette" + TAB +"Dessert"+ TAB +"Coupe"+ TAB +"Poire belle hélène","SUIVAN5-.BMP")
ArbreAjoute(RecetteTV,"Recette" + TAB +"Dessert"+ TAB +"Coupe"+ TAB +"Colonel","SUIVAN5-.BMP")
ArbreAjoute(RecetteTV,"Recette" + TAB +"Dessert"+ TAB +"Tarte aux pommes")
ArbreAjoute(RecetteTV,"Recette" + TAB +"Dessert"+ TAB +"Tarte aux pommes"+ TAB +"à la crème fraiche","SUIVAN5-
BMP"
)
ArbreAjoute(RecetteTV,"Recette" + TAB +"Dessert"+ TAB +"Tarte aux pommes"+ TAB +"au calvados","SUIVAN5-.BMP")
ArbreAjoute(RecetteTV,"Recette" + TAB +"Dessert"+ TAB +"Crème brulée","SUIVAN5-.BMP")
ArbreAjoute(RecetteTV,"Recette" + TAB +"Dessert"+ TAB +"Vacherin","SUIVAN5-.BMP")
ArbreDéroule(RecetteTV,"Recette" + TAB +"Dessert")
// Liste les "fils" du noeud "Desserts" dans l'arbre "RecetteTV"
// La procédure "DérouleTout" est appelée
// pour chaque "fils" trouvé du noeud "Desserts"
Res est un entier
Res = ArbreListeFils (RecetteTV, "Recette" + TAB + "Dessert", "DérouleTout")

// Procédure locale "DérouleTout"
// Cette procédure déroule tous les noeuds "fils" enroulés du noeud "Desserts"
Procédure DérouleTout(RecetteTV, CheminFils, FilsTrouvé, Niveau, Pointeur)
// L'élément trouvé est-il une feuille ?
SI ArbreTypeElement(RecetteTV, CheminFils + FilsTrouvé) = aFeuille ALORS
    Retour // Retour à la fonction ArbreListeFils
SINON
    // L'élément trouvé est-il enroulé ?
    SI ArbreEtat(RecetteTV, CheminFils + FilsTrouvé) = aEnroule ALORS
        ArbreDéroule(RecetteTV, CheminFils + FilsTrouvé)
    FIN
FIN
// Enroule l'arbre
ArbreEnroule(RecetteTV, "Recette")