Functions > FileDirDisk >


FileSetEnd

Définit la position courante du pointeur à la fin du fichier.

FileSetEnd ( "filehandle" )

Paramètre

filehandle Le handle du fichier, rétouné par un appel précédent à FileOpen().

Valeur de retour

Succès: Retourne True si l'opération a réussi.
Échec: Retourne False.

En relation

FileFlush, FileGetPos, FileOpen, 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 = _WinAPI_GetTempFileName(@TempDir)

    ; Ouvre le fichier en écriture (écrase un fichier existant) et mémorise 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 temporaire.")
        Return False
    EndIf

    ; Ecrit du texte dans le fichier en utilisant le handle retourné par FileOpen.
    FileWriteLine($hFileOpen, "Line 1")
    FileWriteLine($hFileOpen, "Line 2")
    FileWriteLine($hFileOpen, "Line 3")

    ; Copie la mémoire tampon du fichier sur le disque.
    FileFlush($hFileOpen)

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

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

    ; Ecrit du texte dans le fichier en utilisant le handle retourné par FileOpen.
    FileWriteLine($hFileOpen, "Line 4")
    FileWriteLine($hFileOpen, "Line 5")
    FileWriteLine($hFileOpen, "Line 6")

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

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

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

    ; Définit la fin du fichier à la position courante.
    FileSetEnd($hFileOpen)

    ; Analyse la position dans le fichier et essaye de lire le contenu à partir de la position courante. Le contenu a été détruit.
    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

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 en écriture (écrase un fichier existant) et mémorise 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 temporaire.")
        Return False
    EndIf

    ; Ecrit du texte dans le fichier en utilisant le handle retourné par FileOpen et définit la fin du fichier.
    FileWrite($hFileOpen, "ABCDEF")
    FileSetEnd($hFileOpen)

    ; Affiche la taille du fichier et son contenu.
    MsgBox($MB_SYSTEMMODAL, "", "Taille: " & FileGetSize($sFilePath) & @CRLF & "Données: " & @CRLF & FileRead($sFilePath))

    ; Augmente la taille du fichier de 9 octets mais n'écrit pas de texte supplémentaire.
    FileSetPos($hFileOpen, 9, $FILE_BEGIN)
    FileSetEnd($hFileOpen)

    ; Affiche la taille du fichier et son contenu.
    MsgBox($MB_SYSTEMMODAL, "", "Taille: " & FileGetSize($sFilePath) & @CRLF & "Données: " & @CRLF & FileRead($sFilePath))

    ; Déplace la position après ABCDEF i.e. 6 octets puis écrit du texte supplémentaire qui augmentera la taille du fichier de 12 octets.
    FileSetPos($hFileOpen, 6, $FILE_BEGIN)
    FileWrite($hFileOpen, "HIJKLM")
    FileSetEnd($hFileOpen) ; Définit la fin du fichier.

    ; Affiche la taille du fichier et son contenu.
    MsgBox($MB_SYSTEMMODAL, "", "Taille: " & FileGetSize($sFilePath) & @CRLF & "Données: " & @CRLF & FileRead($sFilePath))

    ; Diminue la taille du fichier de 9 octets.
    FileSetPos($hFileOpen, 9, $FILE_BEGIN)
    FileSetEnd($hFileOpen) ; Définit la fin du fichier.

    ; Affiche la taille du fichier et son contenu.
    MsgBox($MB_SYSTEMMODAL, "", "Taille: " & FileGetSize($sFilePath) & @CRLF & "Données: " & @CRLF & FileRead($sFilePath))

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

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