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
- Flags d'Ouverture des Fichiers
- Propriétés de Fichiers
- Position dans le Fichier
- Utilisation d'une Page de Code
- MessageBox