Ouvre un fichier en lecture ou en écriture.
FileOpen ( "filename" [, mode = 0] )
filename | Nom du fichier à ouvrir. |
mode | [optionnel] Mode d'ouverture du fichier. Doit être une combinaison des éléments suivants: $FO_READ (0) = Mode lecture (par défaut) $FO_APPEND (1) = Mode écriture (ajoute à la fin du fichier) $FO_OVERWRITE (2) = Mode écriture (efface le contenu précédent) $FO_CREATEPATH (8) = Crée la structure des répertoires si elle n'existe pas (Voir Remarques). $FO_BINARY (16) = Force le mode binaire (Voir Remarques). $FO_UNICODE or $FO_UTF16_LE (32) = Utilise l'Unicode UTF16 Little Endian en mode lecture-écriture. $FO_UTF16_BE (64) = Utilise l'Unicode UTF16 Big Endian en mode lecture-écriture. $FO_UTF8 (128) = Utilise l'Unicode UTF8 (avec BOM) en mode lecture-écriture. $FO_UTF8_NOBOM (256) = Utilise l'Unicode UTF8 (sans BOM) en mode lecture-écriture. $FO_ANSI (512) = Utilise l'ANSI en mode lecture-écriture. $FO_UTF16_LE_NOBOM (1024) = Utilise l'Unicode UTF16 Little Endian (sans BOM) en mode lecture-écriture. $FO_UTF16_BE_NOBOM (2048) = Utilise l'Unicode UTF16 Big Endian (sans BOM) en mode lecture-écriture. $FO_FULLFILE_DETECT (16384) = Lors de l'ouverture en lecture et sans BOM, utilise le fichier entier pour déterminer s'il est UTF8 ou UTF16. Si ce n'est pas utilisé, alors seulement la partie au début du fichier (64Ko) est testée pour des raisons de performance. Le chemin du dossier doit déjà exister (sauf en utilisant le mode $FO_CREATEPATH - Voir Remarques). Les constantes sont définies dans FileConstants.au3 |
Succès: | Retourne le handle du fichier pour utilisation ultérieure avec les fonctions fichier. |
Échec: | Retourne -1 si une erreur est rencontrée. |
Le handle du fichier doit être fermé avec la fonction FileClose().
Un fichier peut ne pas s'ouvrir en raison des droits d'accès ou d'attributs.
Le mode par défaut lors de l'écriture de texte est UTF8 (sans BOM) - Utilisez les commutateurs du mode Unicode pour changer cela. Lors de la lecture sans commutateur explicite du mode Unicode, le contenu du fichier est examiné et une proposition est faite pour savoir si le fichier est UTF8, UTF16 ou ANSI. Si, lors de l'ouverture d'un fichier existant, ce fichier a une BOM, alors la BOM sera utilisée en rapport avec les commutateurs passés du mode Unicode.
L'ouverture d'un fichier en mode écriture, crée le fichier s'il n'existe pas. Les répertoires ne sont pas créés à moins d'utiliser les commutateurs corrects.
Lors de la lecture et de l'écriture par le même "handle" de fichier, la fonction FileSetPos() doit être utilisée pour mettre à jour la position courante du pointeur de fichier.
Un fichier peut être lu comme données binaires (octets) en utilisant FileOpen() avec le flag binaire.
Consultez "Support Unicode" pour une description détaillée.
FileClose, FileFlush, FileGetPos, FileRead, FileReadLine, FileSetPos, FileWrite, FileWriteLine
#include <FileConstants.au3> #include <MsgBoxConstants.au3> #include <WinAPIFiles.au3> Example() Func Example() ; Crée une constante locale avec le chemin du fichier qui sera lu/écrit. Local Const $sFilePath = @TempDir & "\FileOpen.txt" ; Crée un fichier temporaire pour y lire les données. If Not FileWrite($sFilePath, "Exemple d'utilisation de FileOpen.") Then MsgBox($MB_SYSTEMMODAL, "", "Une erreur est survenue lors de l'écriture dans le fichier temporaire.") Return False EndIf ; Ouvre le fichier en lecture et stocke le handle dans une variable. Local $hFileOpen = FileOpen($sFilePath, $FO_READ) If $hFileOpen = -1 Then MsgBox($MB_SYSTEMMODAL, "", "Une erreur est survenue pendant la lecture du fichier.") Return False EndIf ; Lit le contenu du fichier à l'aide du handle retournée par FileOpen. Local $sFileRead = FileRead($hFileOpen) ; Ferme le handle retourné par FileOpen. FileClose($hFileOpen) ; Affiche le contenu du fichier. MsgBox($MB_SYSTEMMODAL, "", "Contenu du fichier:" & @CRLF & $sFileRead) ; Supprime le fichier temporaire. FileDelete($sFilePath) EndFunc ;==>Example ; Crée un fichier. Func FileCreate($sFilePath, $sString) ; Crée une variable pour stocker une valeur booléenne. Local $bReturn = True ; Si FileWrite retourne 1 ce sera Vrai sinon Faux. If FileExists($sFilePath) = 0 Then $bReturn = (FileWrite($sFilePath, $sString) = 1) ; Retourne la valeur booléenne Vrai ou Faux, suivant la valeur de retour de FileWrite. Return $bReturn EndFunc ;==>FileCreate
#include <FileConstants.au3> #include <MsgBoxConstants.au3> #include <WinAPIFiles.au3> Example() Func Example() ; Crée une constante locale avec le chemin du fichier qui sera lu/écrit. Local Const $sFilePath = _WinAPI_GetTempFileName(@TempDir) ; Ouvre le fichier pour un accès en lecture/écriture. Local $hFileOpen = FileOpen($sFilePath, $FO_READ + $FO_OVERWRITE) If $hFileOpen = -1 Then MsgBox($MB_SYSTEMMODAL, "", "Une erreur est survenue lors de la lecture du fichier.") Return False EndIf ; Écrit quelques données. FileWrite($hFileOpen, "Un peu de texte pour montrer que le handle a été ouvert avec un accès en lecture-écriture." & @CRLF) ; Obtient la position actuelle dans le fichier. Local $iFilePos = FileGetPos($hFileOpen) ; Maintenant, positionne le curseur sur le début. FileSetPos($hFileOpen, 0, $FILE_BEGIN) ; Affiche le contenu du fichier. MsgBox($MB_SYSTEMMODAL, "", FileRead($hFileOpen)) ; Maintenant, positionne le curseur sur la position précédente. FileSetPos($hFileOpen, 0, $iFilePos) ; Écrit quelques données de plus. FileWrite($hFileOpen, "Un peu de texte en plus.") ; Positionne le curseur sur la position précédente. FileSetPos($hFileOpen, 0, $FILE_BEGIN) ; Affiche le contenu du fichier. MsgBox($MB_SYSTEMMODAL, "", FileRead($hFileOpen)) ; Ferme le handle retourné par FileOpen. FileClose($hFileOpen) ; Supprime le fichier temporaire. FileDelete($sFilePath) Return True EndFunc ;==>Example