pictogram Auteur: Patrick Biker
Date: 18 mars 2006
Maj : 21 Mars 2015

Exemples évolués

Chaque exemple montre une utilisation pratique de la fonction du WLangage.

Quand plusieurs syntaxes sont possibles, chacune est illustrée indépendamment.

Revenir à la page des exemples évolués


Le code suivant permet de bloquer et de débloquer plusieurs blocs d'octets de taille identique (50 octets) dans un fichier texte. Le fichier texte est ouvert en mode lecture/écriture.  Le fichier bloqué sera accessible en lecture et en écriture uniquement par l'application qui bloque ce fichier.



// Déclaration et initialisation des variables
NomCheminFichier est une chaîne
IdFichier est un entier
IndiceDébut est un entier =0 // Premier octet du bloc d'octets à bloquer
NbOctet est un entier
ResBlocage est un booléen = Vrai
ResDéblocage est un booléen = Vrai
ResFermeFichier est un entier
// Sélection du nom et du chemin du fichier
NomCheminFichier = "C:\MesRépertoires\Fichier.txt"
// Ouverture du fichier
IdFichier = fOuvre(NomCheminFichier, foLectureEcriture )
// Affichage du message d'erreur si l'ouverture n'a pas été effectuée
SI IdFichier = -1 ALORS
   Erreur(ErreurInfo( errMESSAGE ))
SINON
   // Nombre d'octets dans le fichier ?
  
NbOctet = fPositionne(IdFichier, 0, fpFin )
   // Fin du fichier ? Erreur de blocage ? Erreur de déblocage ?
  
TANTQUE (IndiceDébut + 50) < NbOctet ET ResBlocage = Vrai ET ResDéblocage = Vrai
     
// Blocage d'un bloc de 50 octets
     
ResBlocage = fBloque(IdFichier, IndiceDébut, 49)
      // Traitements dans le bloc d'octets bloqué
      
...
      // Fin des traitements dans le bloc d'octets bloqué
      // Déblocage du bloc d'octets

      ResDéblocage = fDébloque (IdFichier, IndiceDébut, 49)
      IndiceDébut = IndiceDébut + 50
  
FIN
   // Affichage du message d'erreur si le blocage ou si le déblocage n'a pas été effectué
  
SI ResBlocage = Faux OU ResDéblocage = Faux ALORS
      Erreur(ErreurInfo( errMESSAGE ))
   FIN
   // Fermeture du fichier
   ResFermeFichier = fFerme(IdFichier)
   SI ResFermeFichier = -1 ALORS
      // Affichage du message d'erreur si la fermeture n'a pas été effectuée
      Erreur(ErreurInfo( errMESSAGE ))
   FIN
FIN


Le code suivant permet de bloquer et de débloquer la totalité d'un fichier texte. Le fichier est ouvert en mode lecture/écriture.  Le fichier bloqué sera accessible en lecture et en écriture uniquement par l'application qui bloque ce fichier.



// Déclaration des variables
NomCheminFichier est une chaîne
IdFichier est un entier
ResBlocage est un booléen
ResDéblocage est un booléen
ResFermeFichier est un entier
// Sélection du nom et du chemin du fichier
NomCheminFichier = "C:\MesRépertoires\Fichier.txt"
// Ouverture du fichier
IdFichier = fOuvre(NomCheminFichier, foLectureEcriture )
// Affichage du message d'erreur si l'ouverture n'a pas été effectuée
SI IdFichier = -1 ALORS
   Erreur(ErreurInfo( errMESSAGE ))
SINON
   // Blocage du fichier
  
ResBlocage = fBloque(IdFichier)
   // Affichage du message d'erreur si le blocage n'a pas été effectué
  
SI ResBlocage = Faux ALORS
      Erreur(ErreurInfo( errMESSAGE ))
   SINON
      // Traitements dans le fichier bloqué
     

      // Fin des traitements dans le fichier bloqué
  
FIN
   // Déblocage du fichier
   // Rappel : ce déblocage n'est pas obligatoire car la fermeture du fichier
   // débloquera automatiquement le fichier
  
ResDéblocage = fDébloque (IdFichier)
   // Affichage du message d'erreur si le déblocage n'a pas été effectué
  
SI ResDéblocage = Faux ALORS Erreur(ErreurInfo( errMESSAGE ))
   // Fermeture du fichier
   ResFermeFichier = fFerme(IdFichier)
   SI ResFermeFichier = -1 ALORS
      // Affichage du message d'erreur si la fermeture n'a pas été effectuée
      Erreur(ErreurInfo( errMESSAGE ))
   FIN
FIN