Écrit du texte sur une ligne donnée d'un fichier
#include <File.au3>
_FileWriteToLine ( $sFilePath, $iLine, $sText [, $bOverWrite = False [, $bFill = False]] )
$sFilePath | Le fichier dans lequel écrire |
$iLine | Le numéro de la ligne dans laquelle écrire le texte |
$sText | Le texte à écrire |
$bOverwrite | [optionnel] True - Le texte remplacera l'ancien False - (par défaut) Le texte sera inséré à la ligne donnée et toutes les lignes suivantes seront décalées vers le bas |
$bFill | [optionnel] True - ajoutera des lignes vides au fichier si nécessaire afin que le numéro de ligne existe. False - (par défaut) n'ajoutera pas de lignes. Voir Remarque ci-dessous |
Succès: | Retourne 1. |
Échec: | Retourne 0 et définit @error <> 0. |
@error: | 1 - Le fichier a moins de lignes que $iLine 2 - Le fichier n'existe pas 3 - Erreur lors de l'ouverture du fichier 4 - $iLine est invalide 5 - $fOverwrite est invalide 6 - $sText est invalide 7 - $bFill est invalide |
Si _FileWriteToLine() est appelée avec $bOverwrite = True et $sText = "", la fonction supprimera la ligne.
Par défaut, la fonction retournera une erreur si la ligne n'existe pas dans le fichier, mais si le paramètre $bFill est défini à True, cela forcera l'ajout de lignes vides pour remplir le fichier à une taille permettant l'écriture de la ligne.
#include <File.au3> #include <MsgBoxConstants.au3> #include <WinAPIFiles.au3> Example() Func Example() ; Crée une constante de portée Local avec le chemin du fichier qui sera lu/écrit. Local Const $sFilePath = _WinAPI_GetTempFileName(@TempDir) ; Crée des données à écrire dans le fichier. Local $sData = "Ligne 1: Ceci est un exemple d'utilisation de _FileWriteToLine()" & @CRLF & _ "Ligne 2: Ceci est un exemple d'utilisation de _FileWriteToLine()" & @CRLF & _ "Ligne 3: Ceci est un exemple d'utilisation de _FileWriteToLine()" & @CRLF & _ "Ligne 4: Ceci est un exemple d'utilisation de _FileWriteToLine()" & @CRLF & _ "Ligne 5: Ceci est un exemple d'utilisation de _FileWriteToLine()" & @CRLF ; Crée un fichier temporaire pour lire dedans. If Not FileWrite($sFilePath, $sData) Then MsgBox($MB_SYSTEMMODAL, "", "Erreur lors de l'écriture dans le fichier temporaire.") Return False EndIf ; Ecrit en ligne 3 avec remplacement défini à true. _FileWriteToLine($sFilePath, 3, "Ligne 3: CECI A éTé REMPLACé", True) ; Lit le contenu du fichier en utilisant filepath. Local $sFileRead = FileRead($sFilePath) ; Affiche le contenu du fichier MsgBox($MB_SYSTEMMODAL, "", "Contenu du fichier:" & @CRLF & $sFileRead) ; Ecrit en ligne 3 avec remplacement défini à false. _FileWriteToLine($sFilePath, 3, "Ligne 3: CECI A éTé INSéRé", False) ; Lit le contenu du fichier en utilisant filepath. $sFileRead = FileRead($sFilePath) ; Affiche le contenu du fichier. MsgBox($MB_SYSTEMMODAL, "", "Contenu du fichier:" & @CRLF & $sFileRead) ; Supprime le fichier temporaire. FileDelete($sFilePath) EndFunc ;==>Example