/***************************************************************/
Type Binaire Defaut Final TailleSegment 32 ConserverObjets
/* Objet : Encapsulation du type Binaire. */
/***************************************************************/
/*-------------------------------------------------------------*/
/* Heritage des proprietes d'Objet.  */
/*-------------------------------------------------------------*/
Prive :
	
	EstInstanceDe : Type 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;
/*-------------------------------------------------------------*/
/* Methodes propres.    					      */
/*-------------------------------------------------------------*/
Public :
	
	Constructeur();
	
	Constructeur Optimiser(Invariant, NulAbsorbant) (C : Nul Ou Caractere);
	
	Constructeur Optimiser(Invariant, NulAbsorbant) (O : Nul Ou Entier, Taille : Nul Ou Entier);
	
   Constructeur Optimiser(Invariant, NulAbsorbant) (E : Nul Ou Entier, BigEndian : Booleen=Vrai);
	
   Operateur Optimiser(Invariant, NulAbsorbant) ==(A : Nul Ou Binaire) Retourner Nul Ou Booleen;
	
   Operateur Optimiser(Invariant, NulAbsorbant) !=(A : Nul Ou Binaire) Retourner Nul Ou Booleen;
	
	Operateur Optimiser(Invariant, NulAbsorbant) +(B : Nul Ou Binaire) Retourner Nul Ou Binaire;
	
	Operateur Optimiser(Invariant) -() Retourner Nul Ou Binaire;
	
	Fonction Optimiser(Invariant) Longueur() Retourner Nul Ou Entier;
	
	Fonction Optimiser(Invariant, NulAbsorbant) Gauche(Taille : Nul Ou Entier) Retourner Nul Ou Binaire;
	
	Fonction Optimiser(Invariant, NulAbsorbant) Droite(Taille : Nul Ou Entier) Retourner Nul Ou Binaire;
	
	Fonction Optimiser(Invariant, NulAbsorbant) Milieu(Position : Nul Ou Entier, Taille : Nul Ou Entier) Retourner Nul Ou Binaire;
	
   Operateur Optimiser(Invariant) [](Position : Nul Ou Entier) Retourner Nul Ou Entier;
	
   Operateur [](Position : Nul Ou Entier, Valeur : Nul Ou Entier, MethodeAComposer : Nul Ou Fonction(P1 : Nul Ou Entier, P2 : Nul Ou Entier) Retourner Nul Ou Entier);
	
   Operateur [](Position : Nul Ou Entier, Prefixe : Booleen, MethodeAComposer : Nul Ou Fonction(P1 : Nul Ou Entier, P2 : Booleen) Retourner Nul Ou Entier) Retourner Nul Ou Entier;
	
   Fonction Optimiser(Invariant, NulAbsorbant) Inserer(B : Nul Ou Binaire, Position : Nul Ou Entier) Retourner Nul Ou Binaire;
	
   Fonction Optimiser(Invariant, NulAbsorbant) Compter(Modele : Nul Ou Binaire, Position : Nul Ou Entier=Nul) Retourner Nul Ou Entier;
	
   Fonction Optimiser(Invariant, NulAbsorbant) Remplacer(Modele : Nul Ou Binaire, Remplacant : Nul Ou Binaire, Position : Nul Ou Entier=Nul) Retourner Nul Ou Binaire;
	
   Fonction Optimiser(Invariant, NulAbsorbant) Ajouter(Taille : Nul Ou Entier, Modele : Nul Ou Octet=0) Retourner Nul Ou Binaire;
	
   Fonction Optimiser(Invariant, NulAbsorbant) AjouterDroite(Taille : Nul Ou Entier, Modele : Nul Ou Octet=0) Retourner Nul Ou Binaire;
	
   Fonction Optimiser(Invariant, NulAbsorbant) AjouterGauche(Taille : Nul Ou Entier, Modele : Nul Ou Octet=0) Retourner Nul Ou Binaire;
	
   Fonction Optimiser(Invariant, NulAbsorbant) Supprimer(Modele : Nul Ou Octet=0) Retourner Nul Ou Binaire;
	
   Fonction Optimiser(Invariant, NulAbsorbant) SupprimerDroite(Modele : Nul Ou Octet=0) Retourner Nul Ou Binaire;
	
   Fonction Optimiser(Invariant, NulAbsorbant) SupprimerGauche(Modele : Nul Ou Octet=0) Retourner Nul Ou Binaire;
	
   Fonction Optimiser(Invariant, NulAbsorbant) Rechercher(Modele : Nul Ou Binaire, Position : Nul Ou Entier=Nul) Retourner Nul Ou Binaire;
	
   Operateur =(C: Nul Ou ICollection(Nul Ou Entier));
Prive :
	
   Destructeur(MettreEnAnteMemoire : Booleen) Retourner Booleen;
Fin Type
Le type Binaire a trois constructeurs.
Le type Binaire modélise une suite d'octets de code variant de 0 à 255. La taille du binaire est calculée automatiquement et dynamiquement en fonction de son contenu.
Longueur()-1. Un numéro d'index incorrect provoque l'exception CollectionIndexImpossible.
Principal
/*******/
Variable
/******/
	B1 : Binaire;
	B2 : Binaire;
Debut
B2=Binaire("coucou");
/* Conversion d'une chaîne de caractères en binaire. */ 
B1=B1+B2;
/* Concaténation de deux binaires. */
B1=-B2;
/* Inversion de la suite d'octets de B2. */
Si B1==B2 Alors
/* Egalité entre deux binaires. */ 
	...
Fin Si
Si B1!=B2 Alors
/* Inégalité entre deux binaires. */ 
	...
Fin Si
Fin Principal
| - | - | - | - | - | - | - | - | - |