Dann verwende eben stattdessen die nativen Funktionen
[autoit]
fileopen
fileread
filewrite
und gib den entsprechenden Modus (UTF-8 ohne BOM) vor.
EDIT:
Oder wenn es unbedingt aus Faulheit die Filewritetoline Funktion sein soll schau in die file.au3, such dir die Funktion raus und erstell dir eine angepasste Kopie davon.
Hier einfach die Funktionsaufrufe für fileopen, fileread , filewrite entsprechend abändern und dann als _MY_filewritetoline() in dein Script einbinden...
Spoiler anzeigen
; #FUNCTION# ====================================================================================================================
; Name...........: _FileWriteToLine
; Description ...: Writes text to a specific line in a file.
; Syntax.........: _FileWriteToLine($sFile, $iLine, $sText[, $fOverWrite = 0])
; Parameters ....: $sFile - The file to write to
; $iLine - The line number to write to
; $sText - The text to write
; $fOverWrite - If set to 1 will overwrite the old line
; |If set to 0 will not overwrite
; Return values .: Success - 1
; Failure - 0
; @Error - 0 = No error
; |1 = File has less lines than $iLine
; |2 = File does not exist
; |3 = Error when opening file
; |4 = $iLine is invalid
; |5 = $fOverWrite is invalid
; |6 = $sText is invalid
; Author ........: cdkid
; Modified.......: partypooper, MrCreatoR
; Remarks .......: If _FileWriteToLine is called with $fOverWrite as 1 and $sText as "", it will delete the line.
; Related .......:
; Link ..........:
; Example .......: Yes
; ===============================================================================================================================
Func _FileWriteToLine($sFile, $iLine, $sText, $fOverWrite = 0)
If $iLine <= 0 Then Return SetError(4, 0, 0)
If Not IsString($sText) Then
$sText = String($sText)
If $sText = "" Then Return SetError(6, 0, 0)
EndIf
If $fOverWrite <> 0 And $fOverWrite <> 1 Then Return SetError(5, 0, 0)
If Not FileExists($sFile) Then Return SetError(2, 0, 0)
Local $sRead_File = FileRead($sFile)
Local $aSplit_File = StringSplit(StringStripCR($sRead_File), @LF)
If UBound($aSplit_File) < $iLine Then Return SetError(1, 0, 0)
Local $hFile = FileOpen($sFile, $FO_OVERWRITE)
If $hFile = -1 Then Return SetError(3, 0, 0)
$sRead_File = ""
[/autoit] [autoit][/autoit] [autoit]For $i = 1 To $aSplit_File[0]
If $i = $iLine Then
If $fOverWrite = 1 Then
If $sText <> '' Then $sRead_File &= $sText & @CRLF
Else
$sRead_File &= $sText & @CRLF & $aSplit_File[$i] & @CRLF
EndIf
ElseIf $i < $aSplit_File[0] Then
$sRead_File &= $aSplit_File[$i] & @CRLF
ElseIf $i = $aSplit_File[0] Then
$sRead_File &= $aSplit_File[$i]
EndIf
Next
FileWrite($hFile, $sRead_File)
FileClose($hFile)
Return 1
EndFunc ;==>_FileWriteToLine