Functions > FileDirDisk >


FileReadLine

Lit une ligne de texte dans un fichier texte précédemment ouvert.

FileReadLine ( "filehandle/filename" [, line = 1] )

Paramètres

filehandle/filename Le handle du fichier, retourné par un précédent appel à FileOpen(). Alternativement vous pouvez utiliser le nom du fichier comme premier paramètre.
line [optional] Le numéro de la ligne à lire. La première ligne du fichier texte est la ligne 1 (pas zéro), la dernière ligne est -1.

Valeur de retour

Succès: Retourne une ligne de texte
Échec: Définit @error <> 0.
@error: 1 = si le fichier n'est pas ouvert en mode lecture ou d'autres erreurs.
-1 = si la fin du fichier est atteinte

Remarques

Retourne le texte de la ligne lue, tous les caractères de saut de ligne (Chr(10) ou @LF) à la fin d'une ligne lue sont automatiquement supprimés.
Si aucun numéro de ligne à lire est donné, la ligne "suivante" sera lue. (La "suivante" pour un fichier nouvellement ouvert est la première ligne.)
Si un nom de fichier est donné plutôt qu'un handle de fichier - le fichier sera ouvert et fermé pendant l'appel de fonction - pour traiter des fichiers texte volumineux ce sera beaucoup plus lent que d'utiliser des handles de fichiers.
Note: Ne pas utiliser en même temps les handles de fichiers et les noms de fichiers, par exemple, n'ouvrez pas un fichier avec FileOpen(), pour ensuite utiliser un nom de fichier dans FileReadLine. Utilisez des handles de fichiers ou des noms de fichiers dans vos fonctions, mais pas les deux!

Du point de vue performance ce serait une mauvaise idée de lire ligne par ligne en spécifiant le paramètre "line" dont la valeur serait incrémentée de un. Ceci forcerait AutoIt à relire le fichier depuis le début jusqu'à atteindre la ligne spécifiée.

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

En relation

FileGetPos, FileOpen, FileRead, FileSetPos, FileWrite, FileWriteLine, IniRead

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 y lire les données.
    If Not FileWrite($sFilePath, "Example d'utilisation de FileReadLine.") 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 lors de la lecture du fichier.")
        Return False
    EndIf

    ; Lit la 1ère ligne du fichier en utilisant le handle renvoyé par FileOpen.
    Local $sFileRead = FileReadLine($hFileOpen, 1)

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

    ; Affiche la première ligne du fichier.
    MsgBox($MB_SYSTEMMODAL, "", "Première ligne du fichier:" & @CRLF & $sFileRead)

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