Le fichier source est ${UPS_HOME}/upsvtm/demo/${UPS_LANGUAGE}/liste.upl.
upscmp Source=liste.upl
liste
upssng Source=liste.upl
Source Composant "Exemple d'emploi du type Liste" Version 4.0.0;
Procedure EcrireListe(M : Caractere, L : ListeDe Caractere)
/*********************************************************/
Variable
/******/
C : Caractere;
Debut
Ecran.Ecrire(M);
Pour C=L.ParcoursAuDebut() JusquA L.DernierElement() Pas L.Suivant()
Faire
Ecran.Ecrire(C);
Fin Pour
Ecran.Ecrire("\n");
Fin Procedure
Procedure EcrireListeInverse(M : Caractere, L : ListeDe Caractere)
/****************************************************************/
Variable
/******/
C : Caractere;
I : Entier;
Debut
Ecran.Ecrire(M);
I=L.AllouerIterateur();
Pour C=L.ParcoursALaFin(1) JusquA L.PremierElement() Faire
Ecran.Ecrire(L.Element(I));
Fin Pour
L.LibererIterateur(I);
Ecran.Ecrire("\n");
Fin Procedure
Principal Optimiser(NePasFactoriserChaine)
/***************************************/
Variable
/******/
L : Nul Ou ListeDe Caractere;
L2 : Nul Ou ListeDe Caractere;
A : Caractere;
B : Caractere;
C : Caractere;
D : Caractere;
E : Caractere;
F : Caractere;
G : Caractere;
H : Caractere;
Debut
L=ListeDe("A");
L=L+"B";
L+="C";
L+="D";
L+="E";
L+="F";
L+="G";
L+="H";
L+="I";
EcrireListe("Suivant()", L);
EcrireListeInverse("Precedent()", L);
EcrireListe("-()", -L);
EcrireListe("Gauche(3)", L.Cloner().Gauche(3));
EcrireListe("Droite(3)", L.Cloner().Droite(3));
EcrireListe("Milieu(2,3)", L.Cloner().Milieu(2, 3));
C="a";
L2=ListeDe(C);
L2+="b";
L2+="c";
L2+=C;
L2+="b";
L2+="c";
EcrireListe("Inserer(2)", L.Cloner().Inserer(L2, 2));
Ecran.Ecrire("Compter(0)");
Ecran.Ecrire(L2.Compter(C));
Ecran.Ecrire("\n");
Ecran.Ecrire("Compter(1)");
Ecran.Ecrire(L2.Compter(C, 2));
Ecran.Ecrire("\n");
EcrireListe("Remplacer(0)", L2.RemplacerTous(C, "x"));
EcrireListe("Remplacer(1)", L2.RemplacerTous(C, "x", 1));
Ecran.Ecrire("Rechercher(0)");
Ecran.Ecrire(L2.Rechercher(C));
Ecran.Ecrire("\n");
Ecran.Ecrire("Rechercher(1)");
Ecran.Ecrire(L2.Rechercher(C,1));
Ecran.Ecrire("\n");
EcrireListe("Supprimer(0)", L2.SupprimerTous(C));
EcrireListe("Supprimer(1)", L2.SupprimerTous(C, 1));
Ecran.Ecrire("L[0]");
Ecran.Ecrire(L[0]);
Ecran.Ecrire("L[2]");
Ecran.Ecrire(L[2]);
Ecran.Ecrire("PremierElement()");
Ecran.Ecrire(L.PremierElement());
Ecran.Ecrire("DernierElement()");
Ecran.Ecrire(L.DernierElement());
Ecran.Ecrire("NumeroElement()");
Ecran.Ecrire(L.NumeroElement());
EcrireListe("AjouterAuDebut()", L.AjouterAuDebut("X"));
EcrireListe("AjouterALaFin()", L.AjouterALaFin("Y"));
A="A";
B="B";
C="C";
D="D";
E="E";
F="F";
G="G";
H="H";
L=ListeDe(A);
L+=B;
L+=C;
L+=D;
L+=E;
L+=F;
L2=ListeDe(A);
L2+=B;
L2+=D;
L2+=F;
L2+=G;
L2+=H;
EcrireListe("Union()", L.Union(L2));
EcrireListe("Intersection()", L.Intersection(L2));
EcrireListe("Soustraction()", L.Soustraction(L2));
EcrireListe("Exclusion()", L.Exclusion(L2));
Fin Principal