Functions > FileDirDisk >


FileRead

Lit un nombre donné de caractères/octets dans un fichier précédemment ouvert.

FileRead ( "filehandle/filename" [, count] )

Paramètres

filehandle/filename Le handle du fichier, retourné par FileOpen(). Sinon, vous peuvent utiliser une chaine de caractères contenant le nom du fichier comme premier paramètre.
count [optionnel] Le nombre de caractères à lire. Par défaut, le fichier entier.

Valeur de retour

Succès: Retourne le binaire/la chaine de caractères lue. @extended est défini avec le nombre d'octets/de caractères retournés.
Échec: Définit @error <> 0.
@error: 1 = si le fichier n'est pas ouvert en mode lecture ou pour d'autres erreurs.
-1 = si la fin du fichier est atteinte

Remarques

Un nombre négatif ou non défini, lit le fichier entier à partir de la position courante pointeur de fichier.

Si un nom de fichier est donné plutôt qu'un handle de fichier - le fichier sera ouvert et fermé durant l'appel de la fonction - pour analyser des fichiers texte de grande taille ce sera beaucoup plus lent que d'utiliser des handles de fichiers.
Note: Ne pas mélanger le handle d'un fichier et son nom, c'est à dire, ne pas utiliser FileOpen() pour un fichier, puis utiliser un nom de fichier dans cette fonction. Utilisez soit le handle du fichier, soit le nom du fichier dans vos fonctions, mais pas les deux à la fois!

Les deux formats de texte ANSI et UTF16/UTF8 peuvent être lus - consultez FileOpen() pour plus de détails.

Un fichier peut être lu comme données binaires (octets) en utilisant FileOpen() avec l'option binaire - dans ce cas le décompte est en octets au lieu d'être en caractères. Un nombre trop grand peut provoquer l'arrêt de AutoIt avec une erreur d'allocation mémoire.

En relation

FileGetPos, FileOpen, FileReadLine, FileSetPos, FileWrite, FileWriteLine, String

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 lire les données.
    If Not FileWrite($sFilePath, "Exemple d'utilisation de FileRead.") Then
        MsgBox($MB_SYSTEMMODAL, "", "Une erreur est survenue lors de l'écriture dans le fichier temporaire.")
        Return False
    EndIf

    ; Ouvre le fichier pour la 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 en lisant le 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