Functions > FileDirDisk >


FileFlush

Vide la mémoire tampon d'un fichier sur le disque.

FileFlush ( "filehandle" )

Paramètre

filehandle Le handle du fichier précédemment ouvert avec FileOpen().

Valeur de retour

Succès: Retourne True si la mémoire tampon (buffer) a été vidée (ou n'a pas besoin d'être vidée).
Echec: Retourne False.

Remarque

Le buffer d'un fichier est vidé lorsque son handle est fermé ou lorsque le buffer interne de Windows est plein. Cette fonction force un vidage immédiat du buffer.
Cette fonction ne peut être utilisée qu'avec les handles de fichiers retournés par FileOpen().

En relation

FileClose, FileOpen, FileSetPos, FileWrite, FileWriteLine

Exemple

#include <FileConstants.au3>
#include <MsgBoxConstants.au3>
#include <WinAPIFiles.au3>

Example()

Func Example()
    ; Crée une constante locale du nom complet du fichier qui sera lu/écrit.
    Local Const $sFilePath = _WinAPI_GetTempFileName(@TempDir)

    ; Ouvre le fichier en écriture (écrase un fichier existant) et stocke le handle dans une variable.
    Local $hFileOpen = FileOpen($sFilePath, $FO_OVERWRITE)
    If $hFileOpen = -1 Then
        MsgBox($MB_SYSTEMMODAL, "", "Une erreur est survenue lors de l'écriture dans le fichier.")
        Return False
    EndIf

    ; Écrit des données dans le fichier à l'aide du handle retourné par FileOpen.
    FileWriteLine($hFileOpen, "Line 1")
    FileWriteLine($hFileOpen, "Line 2")
    FileWriteLine($hFileOpen, "Line 3")

    ; Vide le tampon du fichier.
    FileFlush($hFileOpen)

    ; Vérifie la position dans le fichier et essaie de lire le contenu à la position courante.
    MsgBox($MB_SYSTEMMODAL, "", "Position: " & FileGetPos($hFileOpen) & @CRLF & "Data: " & @CRLF & FileRead($hFileOpen))

    ; Maintenant, ajuste la position sur le début.
    FileSetPos($hFileOpen, 0, $FILE_BEGIN)

    ; Vérifie la position de fichier et essaie de lire le contenu à la position actuelle.
    MsgBox($MB_SYSTEMMODAL, "", "Position: " & FileGetPos($hFileOpen) & @CRLF & "Data: " & @CRLF & FileRead($hFileOpen))

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

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