Writes text to a specific line in a file
#include <File.au3>
_FileWriteToLine ( $sFilePath, $iLine, $sText [, $bOverWrite = False [, $bFill = False]] )
$sFilePath | The file containing the line to be written |
$iLine | The line number to which the text will be written |
$sText | The text to be written |
$bOverWrite | [optional] True - The text will overwrite the specified line False - (default) The text will be inserted as the specified line and all subsequent lines will move down |
$bFill | [optional] True - will add blank lines to file if necessary so line number exists False - (default) will not add lines. See remark below |
Success: | 1 |
Failure: | 0 and sets the @error flag to non-zero |
@error: | 1 - File has fewer lines than $iLine 2 - File does not exist 3 - Error when opening file 4 - $iLine is invalid 5 - $bOverWrite is invalid 6 - $sText is invalid 7 - $bFill is invalid |
A file may fail to open due to access rights or attributes.
If _FileWriteToLine() is called with $bOverWrite as 1 and $sText as "", it will delete the line.
By default, the function will return an error if the line does not exist in the file, but setting the $bFill parameter to True will force it will add blank lines to pad the file to a size allowing the line to be written.
#include <File.au3>
#include <MsgBoxConstants.au3>
#include <WinAPIFiles.au3>
Example()
Func Example()
; Create a constant variable in Local scope of the filepath that will be read/written to.
Local Const $sFilePath = _WinAPI_GetTempFileName(@TempDir)
; Create data to be written to the file.
Local $sData = "Line 1: This is an example of using _FileWriteToLine()" & @CRLF & _
"Line 2: This is an example of using _FileWriteToLine()" & @CRLF & _
"Line 3: This is an example of using _FileWriteToLine()" & @CRLF & _
"Line 4: This is an example of using _FileWriteToLine()" & @CRLF & _
"Line 5: This is an example of using _FileWriteToLine()" & @CRLF
; Create a temporary file to read data from.
If Not FileWrite($sFilePath, $sData) Then
MsgBox($MB_SYSTEMMODAL, "", "An error occurred whilst writing the temporary file.")
Return False
EndIf
; Write to line 3 with overwriting set to true.
_FileWriteToLine($sFilePath, 3, "Line 3: THIS HAS BEEN REPLACED", True)
; Read the contents of the file using the filepath.
Local $sFileRead = FileRead($sFilePath)
; Display the contents of the file.
MsgBox($MB_SYSTEMMODAL, "", "Contents of the file:" & @CRLF & $sFileRead)
; Write to line 3 with overwriting set to false.
_FileWriteToLine($sFilePath, 3, "Line 3: THIS HAS BEEN INSERTED", False)
; Read the contents of the file using the filepath.
$sFileRead = FileRead($sFilePath)
; Display the contents of the file.
MsgBox($MB_SYSTEMMODAL, "", "Contents of the file:" & @CRLF & $sFileRead)
; Delete the temporary file.
FileDelete($sFilePath)
EndFunc ;==>Example