Les exportations et les importations

Ce programme présente l'exportation dans un flux et l'importation depuis un flux de scalaires, d'objets ou d'objets issus de collections. Les flux sont des fichiers.

Le fichier source est ${UPS_HOME}/upssdk/demo/${UPS_LANGUAGE}/exporter.upl.

Mode compilé

Commande de compilation

upscmp Source=exporter.upl

Commande d'exécution

exporter

Mode interprété

upssng Source=exporter.upl

Fichier source

Source Composant "Exemple d'emploi de l'import/export" Version 4.0.0;

ImporterModule
Enumere
/*****/
Type Personne1 Defaut
/*******************/ Fin Type

Type Personne2 Defaut
/*******************/ Prive :
/*****/ Fin Type

Variable
/******/
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 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 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 Fin Si
Si Per1.Nom<Per2.Nom Alors Fin Si
Si Per1.Nom>Per2.Nom Alors 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 Fin Selon
Selon E2 Faire 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 Fin Pour
K2.Exporter();
L1.Valeur.Exporter();
L2.Exporter();
Pour I=M1.BorneMin JusquA M1.BorneMax Faire Fin Pour
M2.Exporter();
ExporterEntier(P1.NbElements);
Pour Y3=P1.ParcoursAuDebut() JusquA P1.DernierElement() Faire 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 Fin Selon
I=ImporterEntier();
Selon I Faire Fin Selon
F1=ImporterObjet();
G1=ImporterObjet();
H1=ImporterObjet();
J1=ImporterObjet();
J2=ImporterReel();
O1=ImporterObjet();
I=ImporterEntier();
K1=ListeDe(ImporterObjet());
TantQue I>1 Faire Fin TantQue
K2=ImporterObjet();
L1=ReferenceDe(ImporterObjet());
L2=ImporterObjet();
Pour I=M1.BorneMin JusquA M1.BorneMax Faire Fin Pour
M2=ImporterObjet();
I=ImporterEntier();
P1=ArbreBinaireDe(Critere, Faux);
TantQue I>0 Faire 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 Fin Pour
Pour X3=K2.ParcoursAuDebut() JusquA K2.DernierElement() Faire Fin Pour
Ecran.Ecrire(L1.Valeur.Nom+" "+L1.Valeur.Prenom);
Ecran.Ecrire(L2.Valeur.Nom+" "+L1.Valeur.Prenom);
Pour I=0 JusquA 1 Faire Fin Pour
Pour I=0 JusquA 1 Faire Fin Pour
Pour Y3=P1.ParcoursAuDebut() JusquA P1.DernierElement() Faire Fin Pour
Pour Y3=P2.ParcoursAuDebut() JusquA P2.DernierElement() Faire Fin Pour
Fin Principal

Résultat de l'exécution

nom1 prenom1 nom2 prenom2 coucou coucou 16/05/1968 22:45:58 32 64 bleu blanc DivisionParZero coucou.txt exporter 32.64 64.128 Systeme nom1 prenom1 nom2 prenom2 nom1 prenom1 nom2 prenom2 nom1 prenom1 nom1 prenom1 NOM1 PRENOM1 NOM2 PRENOM2 NOM1 PRENOM1 NOM2 PRENOM2 NOM1 PRENOM1 NOM2 PRENOM2 NOM1 PRENOM1 NOM2 PRENOM2