Flags d'Ouverture de Fichier

Les valeurs des flags d'ouverture de fichiers spécifient le mode d'accès au fichier. Les flags sont définis comme suit :

Identificateur

Valeur

Description

FILE_READ

1

Le fichier est ouvert en lecture. Le flag est utilisé par FileOpen(). Lors de l'ouverture d'un fichier, il est nécessaire de spécifier FILE_WRITE et/ou FILE_READ.

FILE_WRITE

2

Le fichier est ouvert en écriture. Le flag est utilisé par FileOpen(). Lors de l'ouverture d'un fichier, il est nécessaire de spécifier FILE_WRITE et/ou FILE_READ.

FILE_BIN

4

Mode de lecture/écriture binaire (sans conversion en chaîne de caractères). Le flag est utilisé par FileOpen().

FILE_CSV

8

Fichier CSV (tous ses éléments sont convertis en chaînes de caractères du type correspondant, Unicode ou ANSI, et séparé par un séparateur). Le flag est utilisé par FileOpen().

FILE_TXT

16

Fichier texte simple (similaire au fichier csv, mais sans utiliser de séparateur). Le flag est utilisé par FileOpen().

FILE_ANSI

32

Chaînes de caractères de type ANSI (symboles de 1 octet). Le flag est utilisé par FileOpen().

FILE_UNICODE

64

Chaînes de caractères de type UNICODE (2 octets par symbole). Le flag est utilisé par FileOpen().

FILE_SHARE_READ

128

Accès partagé en lecture depuis plusieurs programmes. Le flag es utilisé dans FileOpen(), mais il ne remplace pas la nécessité d'indiquer les flags FILE_WRITE et/ou FILE_READ lors de l'ouverture du fichier.

FILE_SHARE_WRITE

256

Accès partagé en écriture pour plusieurs programmes. Le flag es utilisé dans FileOpen(), mais il ne remplace pas la nécessité d'indiquer les flags FILE_WRITE et/ou FILE_READ lors de l'ouverture du fichier.

FILE_REWRITE

512

Possibilité de réécriture du fichier avec les fonctions FileCopy() et FileMove(). Le fichier doit exister ou doit être ouvert en écriture, sinon le fichier ne sera pas ouvert.

FILE_COMMON

4096

Le chemin relatif au répertoire commun à tous les terminaux clients \Terminal\Common\Files. Le flag est utilisé dans les fonctions FileOpen(), FileCopy(), FileMove() et FileIsExist().

Un ou plusieurs fichiers peuvent être spécifiés lors de l'ouverture d'un fichier. Les flags peuvent être combinés. Les flags sont combinés avec le signe du OU logique (|), qui est positionné entre les flags énumérés. Par exemple, pour ouvrir un fichier au format CSV en lecture-écriture, spécifiez la combinaison FILE_READ|FILE_WRITE|FILE_CSV.

Exemple :

   int filehandle=FileOpen(filename,FILE_READ|FILE_WRITE|FILE_CSV);

Certaines spécifités sont à savoir lors de l'utilisation des flags de lecture/écriture :

  • Si FILE_READ est spécifié, une tentative d'ouverture d'un fichier existant est effectuée. Si le fichier n'existe pas, l'ouverture du fichier échoue et aucun nouveau fichier n'est créé.
  • FILE_READ|FILE_WRITE — un nouveau fichier est créé si aucun fichier n'existe avec le nom spécifié.
  • FILE_WRITE —  le fichier est recréé avec une taille à zéro.

Lors de l'ouverture d'un fichier, il est nécessaire de spécifier FILE_WRITE et/ou FILE_READ.

Les flags définissant le type de lecture d'un fichier ouvert ont des priorités. Le flag avec la plus haute priorité est FILE_CSV, puis FILE_BIN, et FILE_TXT qui a la priorité la plus basse. Si plusieurs flags sont spécifiés en même temps (FILE_TXT|FILE_CSV ou FILE_TXT|FILE_BIN ou FILE_BIN|FILE_CSV), le flag ayant la plus haute priorité est donc utilisé.

Les flags définissant le type d'encodage ont également des priorités. FILE_UNICODE a une priorité plus haute que FILE_ANSI. Si vous spécifiez une combinaison FILE_UNICODE|FILE_ANSI, le flag FILE_UNICODE sera utilisé.

Si ni FILE_UNICODE ni FILE_ANSI ne sont spécifiés, FILE_UNICODE est implicite. Si ni FILE_CSV, ni FILE_BIN, ni FILE_TXT ne sont spécifiés, FILE_CSV est implicite.

Si un fichier est ouvert en lecture en mode fichier texte (FILE_TXT ou FILE_CSV), et que les deux octets 0xff,0xfe sont trouvés au début du fichier, le flag d'encodage sera FILE_UNICODE, même si FILE_ANSI est spécifié.

Voir aussi

Fonctions sur les Fichiers