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

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