Functions > FileDirDisk >


FileOpen

Ouvre un fichier en lecture ou en �criture.

FileOpen ( "filename" [, mode = 0] )

Param�tres

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

Valeur de retour

Succ�s: Retourne le handle du fichier pour utilisation ult�rieure avec les fonctions fichier.
�chec: Retourne -1 si une erreur est rencontr�e.

Remarques

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.

En relation

FileClose, FileFlush, FileGetPos, FileRead, FileReadLine, FileSetPos, FileWrite, FileWriteLine

Exemples

Exemple 1

#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


Exemple 2

#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