DOCUMENTATION EN LIGNE
DE WINDEVWEBDEV ET WINDEV MOBILE

Aide / WLangage / Fonctions WLangage / Fonctions standard / Fonctions de gestion des fichiers externes
  • Le blocage n'a pas été effectué
  • Blocage d'un fichier
  • Position dans le fichier
  • Fonctionnement sous Windows Vista (et supérieur)
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaEtats et RequêtesCode Utilisateur (MCU)
WEBDEV
WindowsLinuxPHPWEBDEV - Code Navigateur
WINDEV Mobile
AndroidWidget AndroidiPhone/iPadWidget IOSApple WatchMac CatalystUniversal Windows 10 App
Autres
Procédures stockées
Bloque entièrement ou partiellement un fichier externe. Le fichier sera débloqué :
L'application ayant bloqué le fichier peut lire et écrire dans ce fichier. Par contre, les autres applications ne pourront ni lire, ni écrire dans ce fichier.
Exemple
// Ouverture d'un fichier externe
MonFichierTxt est un FichierDisque 
ResBloque est un booléen
SI MonFichierTxt.Ouvre("C:\MesRépertoires\Fichier.txt", foLectureEcriture) = Vrai ALORS
...
// Blocage du fichier externe
ResBloque = MonFichierTxt.Bloque()
...
FIN
Syntaxe
<Résultat> = <Fichier manipulé>.Bloque([<Premier octet à bloquer> [, <Nombre d'octets à bloquer>]])
<Résultat> : Booléen
  • Vrai si le fichier a été bloqué,
  • Faux dans le cas contraire.
<Fichier manipulé> : Variable de type FichierDisque
Nom de la variable de type FichierDisque initialisée avec la fonction <Variable FichierDisque>.Ouvre ou <Variable FichierDisque>.Crée.
<Premier octet à bloquer> : Entier optionnel
Position du premier octet à bloquer (0 correspond au premier octet du fichier).
<Nombre d'octets à bloquer> : Entier optionnel ou constante optionnelle
  • Nombre d'octets à bloquer dans le fichier.
  • Constante :
    fBloqueFichierVideLa fonction <Variable FichierDisque>.Bloque a le même comportement que le fichier soit vide ou non (voir Remarques).
Remarques

Le blocage n'a pas été effectué

La fonction <Variable FichierDisque>.Bloque renvoie Faux si le fichier n'a pas été bloqué. Le blocage peut être effectué uniquement si :
  • le fichier externe est ouvert,
  • l'identifiant du fichier est valide,
  • le fichier ou les octets à bloquer ne sont pas déjà bloqués par un autre poste ou par une autre application.

Blocage d'un fichier

  • Le fichier est bloqué dans sa totalité si les paramètres <Premier octet à bloquer> et <Nombre d'octets à bloquer> ne sont pas précisés.
  • Le fichier est bloqué à partir du premier octet à bloquer (paramètre <Premier octet à bloquer>) jusqu'à la fin si le paramètre <Nombre d'octets à bloquer> n'est pas précisé.
  • Lors de la manipulation d'un fichier vide, la fonction <Variable FichierDisque>.Bloque ne bloque par défaut aucun octet. Dans ce cas, plusieurs applications peuvent "bloquer" avec succès un fichier vide. Mais il n'est pas possible d'écraser le fichier tant que le blocage est réalisé.
Pour avoir le même fonctionnement que le fichier soit vide ou non, il suffit d'utiliser la constante fBloqueFichierVide.
Linux Le blocage n'est effectif que entre 2 sites ou 2 contextes différents. Contrairement à Windows, un traitement ne peut pas bloquer un fichier qu'il a bloqué précédemment.

Position dans le fichier

A l'ouverture d'un fichier, la position en cours correspond :
  • au premier octet du fichier (par défaut),
  • au dernier octet du fichier si le fichier est ouvert en mode "ajout" (constante foAjout).
Cette position peut être modifiée par la fonction <Variable FichierDisque>.Positionne.
La position en cours n'est pas modifiée par l'utilisation de la fonction <Variable FichierDisque>.Bloque.
WINDEVWEBDEV - Code ServeurEtats et RequêtesCode Utilisateur (MCU)

Fonctionnement sous Windows Vista (et supérieur)

Si cette fonction ne fonctionne pas correctement sous Windows Vista (et supérieur), il est nécessaire de vérifier si le fichier ou le répertoire manipulé ne se trouve pas dans un des répertoires système (répertoire de Windows ou répertoire "Program Files").
En effet, sous Windows Vista (et supérieur), avec le mécanisme de l'UAC (contrôle des comptes utilisateurs) activé, il est nécessaire d'avoir les privilèges administrateur pour manipuler / modifier des fichiers ou des répertoires présents dans les répertoires système (répertoire de Windows ou répertoire "Program Files").
Conseil de programmation : Si vous devez manipuler / modifier des fichiers ou des répertoires, sans avoir besoin de privilèges administrateur, il est conseillé :
  • de ne pas écrire dans le répertoire de Windows ou dans le répertoire "Program Files",
  • d'utiliser le répertoire système correspondant à l'application (connu par la fonction SysRep par exemple avec la constante srAppDataCommun).
Classification Métier / UI : Code métier
Composante : wd290std.dll
Version minimum requise
  • Version 28
Documentation également disponible pour…
Commentaires
Cliquez sur [Ajouter] pour publier un commentaire

Dernière modification : 06/09/2023

Signaler une erreur ou faire une suggestion | Aide en ligne locale