/***************************************************************/
Type FluxFormateSysteme Implemente Public : IFluxFormate Defaut Final TailleSegment 4 ConserverObjets
/* Objet : Definition des flux formates du systeme. */
/***************************************************************/
/*-------------------------------------------------------------*/
/* Heritage des proprietes d'Objet. */
/*-------------------------------------------------------------*/
Prive :
EstInstanceDe : Type Lecture Public;
/*-------------------------------------------------------------*/
/* Heritage des propriétés de IFlux. */
/*-------------------------------------------------------------*/
Prive :
ModeOuverture : ModeOuvertureFlux Lecture Public Trace;
NomFlux : Caractere Lecture Public Trace;
FinDeFlux : Booleen Lecture Public;
ModeOptimisation : ModeOptimisationFlux Lecture Public;
EstMultiplexe : Booleen Lecture Public;
/*-------------------------------------------------------------*/
/* Heritage des propriétés de IFluxFormate. */
/*-------------------------------------------------------------*/
Prive :
FormatDuDocument : FormatsDocumentSupportes Lecture Public;
Public :
FormatPage : FormatsPageSupportes Virtuel;
HauteurPage : Entier Virtuel;
LargeurPage : Entier Virtuel;
HauteurEnteteDePage : Entier Virtuel;
HauteurPiedDePage : Entier Virtuel;
EspaceEnteteDePage : Entier Virtuel;
EspacePiedDePage : Entier Virtuel;
HauteurCorps : Entier Virtuel;
LargeurCorps : Entier Virtuel;
MargeHaute : Entier Virtuel;
MargeBasse : Entier Virtuel;
MargeGauche : Entier Virtuel;
MargeDroite : Entier Virtuel;
Orientation : OrientationPage Virtuel;
SauterLigneAutomatiquement : Booleen Virtuel;
NumeroPage : Entier Virtuel;
HauteurEnteteDeCorps>> : Entier Virtuel;
HauteurPiedDeCorps : Entier Virtuel;
TitreDocument : Nul Ou Caractere Virtuel;
/*-------------------------------------------------------------*/
/* 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 de IFlux. */
/*-------------------------------------------------------------*/
Public :
Constructeur Habilitation ();
Procedure Lire(B : Booleen Sortie);
Fonction Lire(B : Binaire Sortie, Nombre : Nul Ou Entier) Retourner Nul Ou Entier;
Fonction Lire(C : Caractere Sortie, Nombre : Nul Ou Entier) Retourner Nul Ou Entier;
Procedure Lire(E : Entier Sortie);
Procedure Lire(R : Reel Sortie);
Fonction LireUneLigne(C : Caractere Sortie) Retourner Nul Ou Entier;
Fonction LireUnMot(C : Caractere Sortie) Retourner Nul Ou Entier;
Procedure Ecrire(B : Nul Ou Booleen);
Procedure Ecrire(C : Nul Ou Binaire);
Procedure Ecrire(C : Nul Ou Caractere);
Procedure Ecrire(E : Nul Ou Entier);
Procedure Ecrire(R : Nul Ou Reel);
Procedure Fermer();
Fonction Optimiser(Invariant) LirePageDeCode() Retourner PagesDeCodesSupportees;
Procedure ChangerPageDeCode(P : PagesDeCodesSupportees);
Fonction LirePosition() Retourner Entier;
Procedure FixerPosition(Position : Entier, PositionReference : PositionFlux=PositionFluxDebut);
Procedure Vider();
Procedure Tronquer();
/*-------------------------------------------------------------*/
/* Heritage des methodes de IFluxFormate. */
/*-------------------------------------------------------------*/
Public :
Rappel ContenuEnteteDePage(F: IFluxFormate);
Rappel ContenuPiedDePage(F: IFluxFormate);
Rappel ContenuEnteteDeCorps(F: IFluxFormate);
Rappel ContenuPiedDeCorps(F: IFluxFormate);
Rappel TitreColonne(NomColonne : Caractere, Titre : Nul Ou Caractere=Nul Sortie);
/*-------------------------------------------------------------*/
/* Methodes propres. */
/*-------------------------------------------------------------*/
Public :
Constructeur(NomDuFichier : Nul Ou Caractere, ModeOuverture : ModeOuvertureFichier, ModeOptimisation : ModeOptimisationFlux, EstMultiplexe : Booleen);
Procedure DeposerSurDisque();
Procedure Effacer();
Prive :
Destructeur(MettreEnAnteMemoire : Booleen) Retourner Booleen;
Fin Type
Le type FluxFormateSysteme modélise un flux formaté d'Up ! Application Systeme lié à la console :
A défaut, la console est formaté en :
Il est toutefois disponible de choisir un autre mode de formatage pour ce mode, via le paramètre UpsSys.FormatConsole, ce qui permet par exemple à un programme utilisé en mode Common Gateway Interface (CGI) de produire automatiquement une sortie au format Hyper Text Markup Language (HTML) ou eXtended Markup Language (XML).
Le type FluxFormateSysteme possède un constructeur explicite permettant d'ouvrir un fichier en lecture, en écriture ou en lecture-écriture selon le paramètre ModeOuverture. Pour connaître la signification de la valeur de ModeOuverture, veuillez vous reporter à la fiche ModeOuvertureFlux.
Si NomFichier ou ModeOuverture est Nul, le fichier n'est pas ouvert.
Si le nom du fichier comporte un fichier d'accès, alors le séparateur de chemin peut être indifféremment division /
ou division inversée \
. En ce cas, Up ! System réalise la transcription du séparateur en le séparateur natif de la plate-forme.
Le nom du fichier peut comporter des variables environnement précédées par dollar $
. En ce cas, Up ! System réalise la substitution des variables environnement par leur valeur.
Le nom du fichier peut comporter un accès distant introduit par l'opérateur arrobase @
. En ce cas, l'opérateur doit introduire un nom d'un serveur disponible parmi les noeuds de la topologie gérée par Up ! Object Request Broker. L'objet est alors créé sur ce serveur et non en local.
Le paramètre ModeOptimisation permet de spécifier le mode d'optimisation pour réaliser des accès disque par bloc. Le paramètre EstMultiplexe permet de spécifier si le fichier doit être multiplexé ou non.
Si une erreur survient lors de l'ouverture, les exceptions OuvertureEcriture ou OuvertureLecture sont envoyées.
Variable
/******/
F1 : FluxFormateSysteme;
/* 'F' est une variable de type flux formate systeme. Elle est toujours renseignée. */
F2 : Nul Ou FluxFormateSysteme;
/* 'F2' est une variable de type flux formate systeme. Elle n'est pas toujours renseignee. */
Principal
/*******/
Debut
F1=Ecran;
/* F1 est affecté avec le flux formaté système 'Ecran'. */
...
Si F1==F2 Alors
/* Egalité entre deux flux formates systemes. */
...
Fin Si
Si F1!=F2 Alors
/* Inégalité entre deux flux formates systemes. */
...
Fin Si
Fin Principal
- | - | - | - | - | - | - | - | - |