/***************************************************************/
Type EchangeCsv Implemente Public : IEchange Defaut Final TailleSegment 4 ConserverObjets
/* Objet : Type definissant un echange au format Csv. */
/***************************************************************/
/*-------------------------------------------------------------*/
/* Heritage des proprietes d'Objet. */
/*-------------------------------------------------------------*/
Prive :
EstInstanceDe : Type Lecture Public;
/*-------------------------------------------------------------*/
/* Heritage des proprietes de IEchangeElementaire. */
/*-------------------------------------------------------------*/
Prive :
FormatDeLEchange : FormatsEchangeSupportes Virtuel Lecture Public;
FinDImportation : Booleen Virtuel Lecture Public;
/*-------------------------------------------------------------*/
/* Proprietes propres. */
/*-------------------------------------------------------------*/
Prive :
Separateur : Caractere Virtuel Lecture Public;
/*-------------------------------------------------------------*/
/* Heritage des methodes d'Objet. */
/*-------------------------------------------------------------*/
Public :
Fonction Optimiser(Invariant) Identique(O : Nul Ou Objet) Retourner Nul Ou Booleen;
Procedure Convertir(O : Nul Ou Objet);
Fonction Optimiser(Invariant) CreeParLeServeur() Retourner Entier;
Fonction Optimiser(Invariant) CreeParLeProcessus() Retourner Entier;
Fonction Optimiser(Invariant) CreeDansLEntrepot() Retourner Entrepot;
Fonction Cloner(EntrepotCible : Nul Ou Entrepot=Nul, Profondeur : ModeClonage = ClonageObjetSeul) Retourner Nul Ou Objet;
Fonction LirePropriete(NomPropriete : Caractere) Retourner Nul Ou Objet;
Procedure EcrirePropriete(NomPropriete : Caractere, Valeur : Nul Ou Objet);
Fonction IncrementerDecrementerPropriete(NomPropriete : Nul Ou Caractere, Incrementer : Booleen, Prefixe : Booleen) Retourner Nul Ou Objet;
Procedure SupprimerPropriete(NomPropriete : Caractere);
Fonction Optimiser(Invariant) EnumererProprietes(NumeroPropriete : Entier, TypePropriete : Nul Ou Type=? Sortie, PeutEtreNul : Booleen=? Sortie, Aide : Nul Ou Caractere=? Sortie, NomEnumere : Nul Ou Caractere=? Sortie) Retourner Nul Ou Caractere;
Fonction Optimiser(Invariant) Adresse() Retourner Nul Ou Caractere;
Prive :
Fonction Exporter(E : Nul Ou IEchangeElementaire) Retourner Boolean;
Fonction Importer(E : Nul Ou IEchangeElementaire, EntrepotCible : Nul Ou Entrepot=Nul, EstFiltre : Booleen=Faux, V : Entier=0, R : Entier=0, C : Entier=0) Retourner Nul Ou Objet;
/*-------------------------------------------------------------*/
/* Heritage des methodes d'IEchangeElementaire. */
/*-------------------------------------------------------------*/
Public :
Procedure Optimiser(PasDEffetDeBord) ExporterEnumere(E : Enumere, Libelle : Nul Ou Caractere=Nul);
Procedure Optimiser(PasDEffetDeBord) ExporterEntier(E : Entier, Libelle : Nul Ou Caractere=Nul);
Procedure Optimiser(PasDEffetDeBord) ExporterReel(R : Reel, Libelle : Nul Ou Caractere=Nul);
Procedure Optimiser(PasDEffetDeBord) ExporterObjet(O : Nul Ou Objet, Libelle : Nul Ou Caractere=Nul);
Fonction Optimiser(PasDEffetDeBord) ImporterEnumere(Libelle : Nul Ou Caractere=Nul) Retourner Enumere;
Fonction Optimiser(PasDEffetDeBord) ImporterEntier(Libelle : Nul Ou Caractere=Nul) Retourner Entier;
Fonction Optimiser(PasDEffetDeBord) ImporterReel(Libelle : Nul Ou Caractere=Nul) Retourner Reel;
Fonction Optimiser(PasDEffetDeBord) ImporterObjet(Libelle : Nul Ou Caractere=Nul) Retourner Nul Ou Objet;
/*-------------------------------------------------------------*/
/* Heritage des methodes de IEchange. */
/*-------------------------------------------------------------*/
Procedure Habilitation FiltrerAPartirDe(NumeroDebut : Entier);
Procedure Habilitation FiltrerJusquA(NumeroFin : Entier);
Procedure Habilitation FiltrerEntre(NumeroDebut : Entier, NumeroFin : Entier);
Procedure Habilitation FiltrerSelon(CritereFiltre : Nul Ou Fonction(O : Nul Ou Objet) Retourner Booleen);
Procedure Habilitation FiltrerSelon(CritereFiltre : Nul Ou Caractere);
Procedure Habilitation FixerValidationAutomatique(NbEnregistrements : Entier);
Procedure Habilitation FixerValidationEnregistrement(Verification : Nul Ou Fonction(O : Nul Ou Objet, M : Nul Ou Caractere Sortie) Retourner Booleen);
Procedure Habilitation RejeterDans(Flux : Nul Ou IFlux);
Procedure Habilitation AssocierRessourceUps5GL(T : Nul Ou Type, Alias : Nul Ou Caractere=Nul);
/*-------------------------------------------------------------*/
/* Methodes propres. */
/*-------------------------------------------------------------*/
Public :
Constructeur Habilitation (Flux : Nul Ou IFlux, T : Nul Ou Type, E : Nul Ou Entrepot=Nul, S : Caractere=",", M : Booleen=Faux);
Operateur Optimiser(Invariant, NulAbsorbant) ==(E : Nul Ou EchangeCsv) Retourner Nul Ou Booleen;
Operateur Optimiser(Invariant, NulAbsorbant) !=(E : Nul Ou EchangeCsv) Retourner Nul Ou Booleen;
Prive :
Destructeur(MettreEnAnteMemoire : Booleen) Retourner Booleen;
Fin Type
Le type EchangeCsv modélise un échange de données au format simplifié Comma Separated Value (CSV).
Ce format ne supporte pas les modèles de données récurrents.
Le type EchangeCsv possède un constructeur pour lesquels les paramètres Flux, T, E et S représentent respectivement le flux sur lequel est adossé l'échange, le type associé à chaque enregistrement, l'entrepôt de création des objets importés et le séparateur s'il ne s'agit pas d'une virgule.
Le flux Flux doit être ouvert en lecture pour une importation ou en écriture pour une exportation. Il s'agit d'un flux ouvert en mode texte.
Le type T correspond au modèle d'un enregistrement : à chaque champ de ce dernier correspond une propriété de ce premier, dans le même ordre et du même type.
Si E a pour valeur Nul, alors l'entrepot par défaut donné par le paramètre EntrepotDefaut d'Up ! Object Management System est utilisé.
Seul le premier caractère du séparateur S est utilisé.
Si le paramètre M a pour valeur Vrai, alors l'échange de données s'effectue au niveau métier :
L'exportation ou l'importation débute à la création de l'objet. Elle se termine à sa destruction.
Type MonType Defaut
/*****************/
A : Caractere;
Fin Type
B : Entier;
C : Nul Ou Reel;
D : Booleen;
Variable
/******/
E : Nul Ou EchangeCsv;
F : Nul Ou IFlux;
Principal
/*******/
Variable
/******/
A : Caractere;
B : Entier;
C : Nul Ou Reel;
D : Booleen;
Debut
...
A="Bonjour le monde";
B=10;
C=3.1416;
D=Vrai;
...
E=EchangeCsv(F,MonType);
E.ExporterObjet(A);
E.ExporterEntier(B);
E.ExporterObjet(C);
E.ExporterEnumere(D);
E=Nul;
...
Fin Principal
- | - | - | - | - | - | - | - | - |