Function Reference


_FileWriteToLine

Writes text to a specific line in a file

#include <File.au3>
_FileWriteToLine ( $sFilePath, $iLine, $sText [, $bOverWrite = False [, $bFill = False]] )

Parameters

$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

Return Value

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

Remarks

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.

Example

#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