Le fichier source est ${UPS_HOME}/upssdk/demo/${UPS_LANGUAGE}/exporter.upl.
upscmp Source=exporter.upl
exporter
upssng Source=exporter.upl
Source Composant "Exemple d'emploi de l'import/export" Version 4.0.0;
ImporterModule
UpsEdi(<UpsEdi.upi>, ImporterDefinitions);
Enumere
/*****/
Couleur Dans (Bleu="bleu", Blanc="blanc", Rouge="rouge");
Type Personne1 Defaut
/*******************/
Nom : Caractere;
Prenom : Caractere;
Pointure : Entier;
Taille : Reel;
Yeux : Couleur;
Constructeur();
Fin Type
Type Personne2 Defaut
/*******************/
Nom : Caractere;
Prenom : Caractere;
Pointure : Entier;
Taille : Reel;
Yeux : Couleur;
Constructeur();
Prive :
/*****/
Fonction Exporter(? : FormatsEchangeSupportes) Retourner Booleen;
Fonction Importer(? : FormatsEchangeSupportes, ? : Nul Ou Entrepot=Nul, ?:Booleen=Faux) Retourner Nul Ou Objet;
Fin Type
Variable
/******/
A1 : Nul Ou Binaire;
B1 : Nul Ou Caractere;
C1 : Nul Ou Date;
D1 : Nul Ou Entier;
D2 : Entier;
E1 : Nul Ou Couleur;
E2 : Couleur;
E3 : Couleur;
F1 : Nul Ou Exception;
G1 : Nul Ou Fichier;
H1 : Nul Ou Module;
J1 : Nul Ou Reel;
J2 : Reel;
K1 : Nul Ou ListeDe Nul Ou Personne1;
K2 : Nul Ou ListeDe Nul Ou Personne1;
L1 : Nul Ou ReferenceDe Nul Ou Personne1;
L2 : Nul Ou ReferenceDe Nul Ou Personne1;
M1 : Tableau[2] De Nul Ou Personne2;
M2 : Nul Ou Tableau[2] De Nul Ou Personne2;
O1 : Nul Ou Entrepot;
P1 : Nul Ou ArbreBinaireDe Nul Ou Personne2;
P2 : Nul Ou ArbreBinaireDe Nul Ou Personne2;
X1 : Nul Ou Personne1;
X2 : Nul Ou Personne1;
X3 : Nul Ou Personne1;
Y1 : Nul Ou Personne2;
Y2 : Nul Ou Personne2;
Y3 : Nul Ou Personne2;
I : Entier;
F : Nul Ou Fichier;
Procedure BleuBlanc()
/*******************/
Debut
E1=Bleu;
E2=Blanc;
Fin Procedure
Prive :
/*****/
Fonction Personne2.Exporter(? : FormatsEchangeSupportes) Retourner Booleen
/************************************************************************/
Debut
Nom.Exporter();
Prenom.Exporter();
ExporterEntier(Pointure);
ExporterReel(Taille);
Selon Yeux Faire
Cas Pour Bleu Faire
ExporterEntier(1);
Fin Cas
Cas Pour Blanc Faire
ExporterEntier(2);
Fin Cas
Cas Pour Rouge Faire
ExporterEntier(3);
Fin Cas
Fin Selon
Fin Procedure
Fonction Personne2.Importer(? : FormatsEchangeSupportes, ? : Nul Ou Entrepot=Nul, ? : Booleen=Faux) Retourner Nul Ou Objet
/************************************************************************************************************************/
Debut
Nom=ImporterObjet();
Prenom=ImporterObjet();
Pointure=ImporterEntier();
Taille=ImporterReel();
Selon ImporterEntier() Faire
Cas Pour 1 Faire
Yeux=Bleu;
Fin Cas
Cas Pour 2 Faire
Yeux=Blanc;
Fin Cas
Cas Pour 3 Faire
Yeux=Rouge;
Fin Cas
Fin Selon
Retourner Objet;
Fin Fonction
Public :
/******/
Fonction Critere(Per1 : Nul Ou Personne2, Per2 : Nul Ou Personne2)
Retourner ComparaisonObjet
/***************************************************************************************/
Debut
Si Per1==Nul Ou Per2==Nul Alors
Retourner ComparaisonNul;
Fin Si
Si Per1.Nom<Per2.Nom Alors
Retourner ComparaisonAvant;
Fin Si
Si Per1.Nom>Per2.Nom Alors
Retourner ComparaisonApres;
Fin Si
Retourner ComparaisonEgal;
Fin Fonction
Principal
/*******/
Debut
X1=Personne1();
X1.Nom="nom1";
X1.Prenom="prenom1";
X1.Pointure=1;
X1.Taille=10.1;
X1.Yeux=Rouge;
X2=Personne1();
X2.Nom="nom2";
X2.Prenom="prenom2";
X2.Pointure=2;
X2.Taille=20.2;
X2.Yeux=Rouge;
Y1=Personne2();
Y1.Nom="NOM1";
Y1.Prenom="PRENOM1";
Y1.Pointure=1;
Y1.Taille=10.1;
Y1.Yeux=Rouge;
Y2=Personne2();
Y2.Nom="NOM2";
Y2.Prenom="PRENOM2";
Y2.Pointure=2;
Y2.Taille=20.2;
Y2.Yeux=Rouge;
A1=Binaire("coucou");
B1="coucou";
C1=Date("16-5-1968 22:45:58");
D1=32;
D2=64;
BleuBlanc();
F1=DivisionParZero;
G1=Fichier("coucou.txt", EcritureTexte);
H1=Global;
J1=32.64;
J2=64.128;
O1=EntrepotSysteme;
K1=ListeDe(X1);
K1+=X2;
K2=ListeDe(X1);
K2+=X2;
L1=ReferenceDe(X1);
L2=ReferenceDe(X1);
M1[0]=Y1;
M1[1]=Y2;
M2=TableauDe(0, 1, Nul);
M2[0]=Y1;
M2[1]=Y2;
P1=ArbreBinaireDe(Critere, Faux);
P1+=Y1;
P1+=Y2;
P2=ArbreBinaireDe(Critere, Faux);
P2+=Y1;
P2+=Y2;
F=Fichier("/tmp/essai.dmp", EcritureBinaire);
DebuterExportation(IFlux(F));
X1.Exporter();
X2.Exporter();
Y1.Exporter();
Y2.Exporter();
A1.Exporter();
B1.Exporter();
C1.Exporter();
D1.Exporter();
ExporterEntier(D2);
Selon E1 Faire
Cas Pour Bleu Faire
ExporterEntier(1);
Fin Cas
Cas Pour Blanc Faire
ExporterEntier(2);
Fin Cas
Cas Pour Rouge Faire
ExporterEntier(3);
Fin Cas
Fin Selon
Selon E2 Faire
Cas Pour Bleu Faire
ExporterEntier(1);
Fin Cas
Cas Pour Blanc Faire
ExporterEntier(2);
Fin Cas
Cas Pour Rouge Faire
ExporterEntier(3);
Fin Cas
Fin Selon
F1.Exporter();
G1.Exporter();
H1.Exporter();
J1.Exporter();
ExporterReel(J2);
O1.Exporter();
ExporterEntier(K1.NbElements);
Pour X3=K1.ParcoursAuDebut() JusquA K1.DernierElement() Faire
X3.Exporter();
Fin Pour
K2.Exporter();
L1.Valeur.Exporter();
L2.Exporter();
Pour I=M1.BorneMin JusquA M1.BorneMax Faire
M1[I].Exporter();
Fin Pour
M2.Exporter();
ExporterEntier(P1.NbElements);
Pour Y3=P1.ParcoursAuDebut() JusquA P1.DernierElement() Faire
Y3.Exporter();
Fin Pour
P2.Exporter();
TerminerExportation();
F.Fermer();
F=Nul;
X1=Nul;
X2=Nul;
Y1=Nul;
Y2=Nul;
A1=Nul;
B1=Nul;
C1=Nul;
D1=0;
D2=0;
E1=Nul;
E2=Bleu;
F1=Nul;
G1=Nul;
H1=Nul;
J1=0.0;
J2=0.0;
O1=Nul;
K1=Nul;
K2=Nul;
L1=Nul;
L2=Nul;
M1[0]=Nul;
M1[1]=Nul;
M2=Nul;
P1=Nul;
P2=Nul;
F=Fichier("/tmp/essai.dmp", LectureBinaire);
DebuterImportation(IFlux(F));
X1=ImporterObjet();
X2=ImporterObjet();
Y1=ImporterObjet();
Y2=ImporterObjet();
A1=ImporterObjet();
B1=ImporterObjet();
C1=ImporterObjet();
D1=ImporterObjet();
D2=ImporterEntier();
I=ImporterEntier();
Selon I Faire
Cas Pour 1 Faire
E1=Bleu;
Fin Cas
Cas Pour 2 Faire
E1=Blanc;
Fin Cas
Cas Pour 3 Faire
E1=Rouge;
Fin Cas
Fin Selon
I=ImporterEntier();
Selon I Faire
Cas Pour 1 Faire
E3=Bleu;
Fin Cas
Cas Pour 2 Faire
E3=Blanc;
Fin Cas
Cas Pour 3 Faire
E3=Rouge;
Fin Cas
Fin Selon
F1=ImporterObjet();
G1=ImporterObjet();
H1=ImporterObjet();
J1=ImporterObjet();
J2=ImporterReel();
O1=ImporterObjet();
I=ImporterEntier();
K1=ListeDe(ImporterObjet());
TantQue I>1 Faire
K1+=ImporterObjet();
I--;
Fin TantQue
K2=ImporterObjet();
L1=ReferenceDe(ImporterObjet());
L2=ImporterObjet();
Pour I=M1.BorneMin JusquA M1.BorneMax Faire
M1[I]=ImporterObjet();
Fin Pour
M2=ImporterObjet();
I=ImporterEntier();
P1=ArbreBinaireDe(Critere, Faux);
TantQue I>0 Faire
P1+=ImporterObjet();
I--;
Fin TantQue
P2=ImporterObjet();
TerminerImportation();
F.Fermer();
Ecran.Ecrire(X1.Nom+" "+X1.Prenom);
Ecran.Ecrire(X2.Nom+" "+X2.Prenom);
Ecran.Ecrire(Caractere(A1));
Ecran.Ecrire(B1);
Ecran.Ecrire(Caractere(C1));
Ecran.Ecrire(D1);
Ecran.Ecrire(D2);
Ecran.Ecrire(Couleur(E1));
Ecran.Ecrire(Couleur(E3));
Ecran.Ecrire(F1.NomException);
Ecran.Ecrire(G1.NomFlux);
Ecran.Ecrire(H1.NomModule);
Ecran.Ecrire(J1);
Ecran.Ecrire(J2);
Ecran.Ecrire(O1.NomEntrepot);
Pour X3=K1.ParcoursAuDebut() JusquA K1.DernierElement() Faire
Ecran.Ecrire(X3.Nom+" "+X3.Prenom);
Fin Pour
Pour X3=K2.ParcoursAuDebut() JusquA K2.DernierElement() Faire
Ecran.Ecrire(X3.Nom+" "+X3.Prenom);
Fin Pour
Ecran.Ecrire(L1.Valeur.Nom+" "+L1.Valeur.Prenom);
Ecran.Ecrire(L2.Valeur.Nom+" "+L1.Valeur.Prenom);
Pour I=0 JusquA 1 Faire
Ecran.Ecrire(M1[I].Nom+" "+M1[I].Prenom);
Fin Pour
Pour I=0 JusquA 1 Faire
Ecran.Ecrire(M2[I].Nom+" "+M2[I].Prenom);
Fin Pour
Pour Y3=P1.ParcoursAuDebut() JusquA P1.DernierElement() Faire
Ecran.Ecrire(Y3.Nom+" "+Y3.Prenom);
Fin Pour
Pour Y3=P2.ParcoursAuDebut() JusquA P2.DernierElement() Faire
Ecran.Ecrire(Y3.Nom+" "+Y3.Prenom);
Fin Pour
Fin Principal