Le fichier source est ${UPS_HOME}/upssdk/demo/${UPS_LANGUAGE}/dictionnaire.upl.
Pour exécuter, ne pas oublier de créer un entrepôt MonEntrepot dans la configuration du noyau d'exécution. Ce programme nécessite sa définition.
upscmp Source=dictionnaire.upl AdaptateurDictionnaire=Oui AdaptateurServeurUpsNet=Oui
dictionnaire
upssng Source=dictionnaire.upl
Source Composant "Exemple d'emploi des dictionnaires" Version 4.0.0;
Enumere
/*****/
Public :
A1 Dans (ValA1, ValA2, ValA3);
Prive :
B2 Dans (ValB1, ValB2);
Entrepot
/*******/
Public :
MonEntrepot;
Public :
/*****/
Type C1 Defaut
/************/
Public :
/******/
CA1 : Booleen;
CB1 : Nul Ou Booleen;
CC1 : Entier;
CD1 : Nul Ou Entier;
CE1 : Reel;
CF1 : Nul Ou Reel;
CG1 : Caractere;
CH1 : Nul Ou Caractere;
Prive :
/******/
CA2 : Booleen;
CB2 : Nul Ou Booleen;
CC2 : Entier;
CD2 : Nul Ou Entier;
CE2 : Reel;
CF2 : Nul Ou Reel;
CG2 : Caractere;
CH2 : Nul Ou Caractere;
Public :
/******/
Constructeur();
Procedure Ecrire1(Prm : Nul Ou Booleen);
Procedure Ecrire2(Prm : Nul Ou Entier);
Procedure Ecrire3(Prm : Nul Ou Reel);
Procedure Ecrire3(Prm : Nul Ou Caractere);
Fin Type
Type C2 Defaut
/************/
CA1 : Entier;
Fin Type
Variable
/******/
Public :
/******/
VA1 : Booleen;
VB1 : Nul Ou Booleen;
VC1 : Entier;
VD1 : Nul Ou Entier;
VE1 : Reel;
VF1 : Nul Ou Reel;
VG1 : Caractere;
VH1 : Nul Ou Caractere;
Prive :
/******/
VA2 : Booleen;
VB2 : Nul Ou Booleen;
VC2 : Entier;
VD2 : Nul Ou Entier;
VE2 : Reel;
VF2 : Nul Ou Reel;
VG2 : Caractere;
VH2 : Nul Ou Caractere;
Exception
/*******/
Public :
/******/
E1(1, TransactionInchangee);
Prive :
/*****/
E2(2, TransactionInchangee);
Procedure C1.Ecrire1(Prm : Nul Ou Booleen)
/****************************************/
Debut
Ecran.Ecrire(Prm);
Fin Procedure
Procedure C1.Ecrire2(Prm : Nul Ou Entier)
/***************************************/
Debut
Ecran.Ecrire(Prm);
Fin Procedure
Procedure C1.Ecrire3(Prm : Nul Ou Reel)
/*************************************/
Debut
Ecran.Ecrire(Prm);
Fin Procedure
Procedure C1.Ecrire3(Prm : Nul Ou Caractere)
/******************************************/
Debut
Ecran.Ecrire(Prm);
Fin Procedure
Procedure Appel1()
/****************/
Debut
Ecran.Ecrire("Appel1();");
Fin Procedure
Procedure Appel2(Prm1 : Booleen, Prm2 : Entier, Prm3 : Reel, Prm4 :
Caractere Entree Sortie)
/*****************************************************************************************/
Debut
Ecran.Ecrire("Appel2("+Caractere(Prm1)+","+Caractere(Prm2)+","+Caractere(Prm3)+","+Prm4+");");
Prm4="hello Appel2";
Fin Procedure
Fonction Appel3() Retourner Booleen
/*********************************/
Debut
Ecran.Ecrire("Appel3();");
Retourner Vrai;
Fin Fonction
Fonction Appel4(Prm1 : Booleen, Prm2 : Entier, Prm3 : Reel, Prm4 :
Caractere Entree Sortie) Retourner Booleen
/***********************************************************************************************************/
Debut
Ecran.Ecrire("Appel4("+Caractere(Prm1)+","+Caractere(Prm2)+","+Caractere(Prm3)+","+Prm4+");");
Prm4="hello Appel4";
Retourner Vrai;
Fin Fonction
Fonction Appel5() Retourner Entier
/********************************/
Debut
Ecran.Ecrire("Appel5();");
Retourner 10;
Fin Fonction
Fonction Appel6(Prm1 : Booleen, Prm2 : Entier, Prm3 : Reel, Prm4 :
Caractere Entree Sortie) Retourner Entier
/**************************************************************************************************/
Debut
Ecran.Ecrire("Appel6("+Caractere(Prm1)+","+Caractere(Prm2)+","+Caractere(Prm3)+","+Prm4+");");
Prm4="hello Appel6";
Retourner 10;
Fin Fonction
Fonction Appel7() Retourner Reel
/******************************/
Debut
Ecran.Ecrire("Appel7();");
Retourner 11.11;
Fin Fonction
Fonction Appel8(Prm1 : Booleen, Prm2 : Entier, Prm3 : Reel, Prm4 :
Caractere Entree Sortie) Retourner Reel
/********************************************************************************************************/
Debut
Ecran.Ecrire("Appel8("+Caractere(Prm1)+","+Caractere(Prm2)+","+Caractere(Prm3)+","+Prm4+");");
Prm4="hello Appel8";
Retourner 11.11;
Fin Fonction
Fonction Appel9() Retourner Caractere
/***********************************/
Debut
Ecran.Ecrire("Appel9();");
Retourner "schuss";
Fin Fonction
Fonction Appel10(Prm1 : Booleen, Prm2 : Entier, Prm3 : Reel, Prm4 :
Caractere Entree Sortie) Retourner Caractere
/******************************************************************************************************/
Debut
Ecran.Ecrire("Appel10("+Caractere(Prm1)+","+Caractere(Prm2)+","+Caractere(Prm3)+","+Prm4+");");
Prm4="hello Appel10";
Retourner "schuss";
Fin Fonction
Principal
/*******/
Variable
Numero : Entier;
Numero2 : Entier;
P : Nul Ou Caractere;
P2 : Nul Ou Caractere;
A : Nul Ou Caractere;
Pr : Nul Ou Entrepot;
T : Nul Ou Type;
E : Nul Ou<
Exception;
Ap : Nul Ou Appel;
EstNul : Booleen;
L : Nul Ou ListeDe Nul Ou Objet;
L2 : Nul Ou ListeDe Nul Ou Objet;
Debut
L=ListeDe(Objet(Vrai));
L+=Objet(5);
L+=Objet(3.14159);
L+=Objet("salut");
P=Global.EnumererEnumeres(++Numero, A);
TantQue P!=Nul Faire
Ecran.Ecrire("Enumere="+P+":"+A);
P2=Global.EnumererValeursEnumeres(P, ++Numero2, A);
TantQue P2!=Nul Faire
Ecran.Ecrire("ValeurEnumere="+P2+":"+A);
P2=Global.EnumererValeursEnumeres(P, ++Numero2, A);
Fin TantQue
Numero2=0;
P=Global.EnumererEnumeres(++Numero,A);
Fin TantQue
Ecran.Ecrire("\n");
Numero=0;
Pr=Global.EnumererEntrepots(++Numero, A);
TantQue Pr!=Nul Faire
Ecran.Ecrire("Entrepot="+Pr.NomEntrepot+":"+A);
Pr=Global.EnumererEntrepots(++Numero, A);
Fin TantQueBR>
Ecran.Ecrire("\n");
Numero=0;
T=Global.EnumererTypes(++Numero, A);
TantQue T!=Nul Faire
Ecran.Ecrire("Type="+T.NomType+":"+A);
T=Global.EnumererTypes(++Numero, A);
Fin TantQue
Ecran.Ecrire("\n");
Numero=0;
P=Global.EnumererVariables(++Numero, T, EstNul, A, ?);
TantQue P!=Nul Faire
Ecran.Ecrire("Variable="+P+" "+T.NomType+" "+Caractere(EstNul)+":"+A);
P=Global.EnumererVariables(++Numero, T,EstNul, A, ?);
Fin TantQue
Ecran.Ecrire("\n");
Numero=0;
E=Global.EnumererExceptions(++Numero, A);
TantQue E!=Nul Faire
Ecran.Ecrire("Exception="+E.NomException+":"+A);
E=Global.EnumererExceptions(++Numero, A);
Fin TantQue
Ecran.Ecrire("\n");
Numero=0;
Ap=C1.EnumererMethodes(++Numero, P, A);
TantQue Ap!=Nul Faire
Ecran.Ecrire("Methode="+P+":"+A);
P=Ap.EnumererParametres(++Numero2, T, EstNul, A, ?, ?, ?);
TantQue P!=Nul Faire
Ecran.Ecrire("Parametre="+P+" "+T.NomType+" "+Caractere(EstNul)+":"+A);
P=Ap.EnumererParametres(++Numero2, T, EstNul, A, ?, ?, ?);
Fin TantQue
Numero2=0;
Ap=C1.EnumererMethodes(++Numero, P, A);
Fin TantQue
Ecran.Ecrire("\n");
Numero=0;
Ap=Global.EnumererAppels(++Numero, P, A);
TantQue Ap!=Nul Faire
Ecran.Ecrire("Methode="+P+":"+A);
P2=Ap.EnumererParametres(++Numero2, T,EstNul, A, ?, ?, ?);
TantQue P2!=Nul Faire
Ecran.Ecrire("Parametre="+P2+" "+T.NomType+" "+Caractere(EstNul)+":"+A);
P2=Ap.EnumererParametres(++Numero2, T, EstNul, A, ?, ?, ?);
Fin TantQue
Numero2=0;
Selon P Faire
Cas Pour "Appel1" Faire
Ap.ExecuterProcedure(L2);
Fin Cas
Cas Pour "Appel2" Faire
Ap.ExecuterProcedure(L);
Fin Cas
Cas Pour "Appel3" Faire
Ecran.Ecrire(Caractere(Booleen(Ap.ExecuterFonction(L2))));
Fin Cas
Cas Pour "Appel4" Faire
Ecran.Ecrire(Caractere(Booleen(Ap.ExecuterFonction(L))));
Fin Cas
Cas Pour "Appel5" Faire
Ecran.Ecrire(Caractere(Entier(Ap.ExecuterFonction(L2))));
Fin Cas
Cas Pour "Appel6" Faire
Ecran.Ecrire(Caractere(Entier(Ap.ExecuterFonction(L))));
Fin Cas
Cas Pour "Appel7" Faire
Ecran.Ecrire(Caractere(Reel(Ap.ExecuterFonction(L2))));
Fin Cas
Cas Pour "Appel8" Faire
Ecran.Ecrire(Caractere(Reel(Ap.ExecuterFonction(L))));
Fin Cas
Cas Pour "Appel9" Faire
Ecran.Ecrire(Caractere(Ap.ExecuterFonction(L2)));
Fin Cas
Cas Pour "Appel10" Faire
Ecran.Ecrire(Caractere(Ap.ExecuterFonction(L)));
Fin Cas
Fin Selon
Ap=Global.EnumererAppels(++Numero, P, A);
Fin TantQue
Ecran.Ecrire("\n");
Global.EcrireVariable("VA1", Objet(Vrai));
Ecran.Ecrire("VA1="+Caractere(VA1));
Ecran.Ecrire("VA1="+Caractere(Booleen(Global.LireVariable("VA1"))));
Global.EcrireVariable("VB1", Objet(Vrai));
Ecran.Ecrire("VB1="+Caractere(VB1));
Ecran.Ecrire("VB1="+Caractere(Booleen(Global.LireVariable("VB1"))));
Global.EcrireVariable("VC1", Objet(10));
Ecran.Ecrire("VC1="+Caractere(VC1));
Ecran.Ecrire("VC1="+Caractere(Entier(Global.LireVariable("VC1"))));
Global.EcrireVariable("VD1", Objet(20));
Ecran.Ecrire("VD1="+Caractere(VD1));
Ecran.Ecrire("VD1="+Caractere(Entier(Global.LireVariable("VD1"))));
Global.EcrireVariable("VE1", Objet(11.11));
Ecran.Ecrire("VE1="+Caractere(VE1));
Ecran.Ecrire("VE1="+Caractere(Reel(Global.LireVariable("VE1"))));
Global.EcrireVariable("VF1", Objet(22.22));
Ecran.Ecrire("VF1="+Caractere(VF1));
Ecran.Ecrire("VF1="+Caractere(Reel(Global.LireVariable("VF1"))));
Global.EcrireVariable("VG1", Objet("coucou"));
Ecran.Ecrire("VG1="+VG1);
Ecran.Ecrire("VG1="+Caractere(Global.LireVariable("VG1")));
Global.EcrireVariable("VH1", Objet("coucou"));
Ecran.Ecrire("VH1="+VH1);
Ecran.Ecrire("VH1="+Caractere(Global.LireVariable("VH1")));
Ecran.Ecrire("\n");
Ecran.Ecrire("++VC1="+Caractere(Entier(Global.IncrementerDecrementerVariable("VC1",
Vrai, Vrai))));
Ecran.Ecrire("++VD1="+Caractere(Entier(Global.IncrementerDecrementerVariable("VD1",
Vrai, Vrai))));
Ecran.Ecrire("VC1--="+Caractere(Entier(Global.IncrementerDecrementerVariable("VC1",
Faux, Faux))));
Ecran.Ecrire("VD1--="+Caractere(Entier(Global.IncrementerDecrementerVariable("VD1",
Faux, Faux))));
Ecran.Ecrire("++VE1="+Caractere(Reel(Global.IncrementerDecrementerVariable("VE1",
Vrai, Vrai))));
Ecran.Ecrire("++VF1="+Caractere(Reel(Global.IncrementerDecrementerVariable("VF1",
Vrai, Vrai))));
Ecran.Ecrire("VE1--="+Caractere(Reel(Global.IncrementerDecrementerVariable("VE1",
Faux, Faux))));
Ecran.Ecrire("VF1--="+Caractere(Reel(Global.IncrementerDecrementerVariable("VF1",
Faux, Faux))));
Ecran.Ecrire("\n");
Fin Principal