Functions > FileDirDisk >


FileWrite

Écrit du texte ou des données à la fin d'un fichier précédemment ouvert.

FileWrite ( "filehandle/filename", "text/data" )

Paramètres

filehandle/filename Le handle du fichier retourné précédemment par FileOpen(). Alternativement, le nom complet du fichier.
text/data Le texte/données à écrire dans le fichier. Le texte est écrit tel quel - pas de @CR ou @LF ajouté. Voir Remarques pour le type de données.

Valeur de retour

Succès: Retourne 1.
Échec: Retourne 0 si le fichier n'est pas ouvert en écriture, si le fichier est en lecture seule, ou si le fichier ne peut pas remplacer un autre.

Remarques

Le fichier doit être ouvert en écriture, sinon la commande FileWrite() échouera.

Si un nom de fichier est donné plutôt qu'un handle de fichier, celui-ci sera ouvert puis fermé durant l'appel de la fonction. Pour un traitement sur de grands fichiers texte ceci sera beaucoup plus lent que d'utiliser un handle de fichier. Ceci dit, le fichier sera créé s'il n'existe pas déjà.

Note: Ne mélangez pas les handles de fichier et les noms de fichiers, par exemple, n'utilisez pas FileOpen() pour ensuite utiliser le nom du fichier dans cette fonction. Utilisez les handles ou les noms de fichiers dans vos fonctions, mais pas les deux.

Lors de l'écriture d'un texte, AutoIt utilise la norme UTF8 (sans BOM) par défaut. Pour écrire dans un autre mode, le fichier doit être ouvert avec FileOpen() et les flags appropriés.

Si les données sont de type Variant binaire (et non texte), il sera écrit dans le fichier octet par octet. Une opération binaire peut aussi être forcée en utilisant FileOpen() avec le flag binaire.

En relation

Binary, FileFlush, FileGetPos, FileOpen, FileRead, FileReadLine, FileSetPos, FileWriteLine

Exemple

#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)

    ; Crée un fichier temporaire pour écrire des données.
    If Not FileWrite($sFilePath, "Démarrage de l'exemple FileWrite, ligne 1. " & @CRLF) Then
        MsgBox($MB_SYSTEMMODAL, "", "Une erreur est survenue lors de l'écriture du fichier temporaire.")
        Return False
    EndIf

    ; Ouvre le fichier en écriture (ajoute à la fin du fichier) et stocke le handle dans une variable.
    Local $hFileOpen = FileOpen($sFilePath, $FO_APPEND)
    If $hFileOpen = -1 Then
        MsgBox($MB_SYSTEMMODAL, "", "Une erreur est survenue lors de la lecture du fichier.")
        Return False
    EndIf

    ; Écrit des données dans le fichier à l'aide du handle retourné par FileOpen.
    FileWrite($hFileOpen, "Ligne 2")
    FileWrite($hFileOpen, "Il s'agit toujours de la ligne 2 car une nouvelle ligne n'a pas été ajoutée au dernier appel FileWrite." & @CRLF)
    FileWrite($hFileOpen, "Line 3" & @CRLF)
    FileWrite($hFileOpen, "Line 4")

    ; Ferme le handle retourné par FileOpen.
    FileClose($hFileOpen)

    ; Affiche le contenu du fichier en passant le chemin du fichier à FILEREAD au lieu du handle retournée par FileOpen.
    MsgBox($MB_SYSTEMMODAL, "", "Contents of the file:" & @CRLF & FileRead($sFilePath))

    ; Supprime le fichier temporaire.
    FileDelete($sFilePath)
EndFunc   ;==>Example