#include <file.au3>
_FileWriteLog ("1.txt","1.1"&@CRLF&"1.2"&@CRLF&"1.3")
newFileWriteLog("2.1"&@CRLF&"2.2"&@CRLF&"2.3","1.txt",4)
Func newFileWriteLog ($text,$path,$maxlines)
$textlines = StringSplit (StringStripCR($text),@LF)
$textlines = $textlines[0]
If $textlines>$maxlines then Return 0
If $textlines=$maxlines then
FileDelete ($path)
_FileWriteLog ($path,$text)
Return 1
EndIf
_FileWriteLog($path, $text)
$FileLines = _FileCountLines ($path)
If $FileLines>$MaxLines then
msgbox ("","","В файле записано "&$filelines&" строк, а максимально возможно - "&$maxlines&". Поэтому, строчки с 1-й по "&($filelines-$maxlines)&"-ю будут удалены!")
For $i = 1 to $FileLines-$Maxlines
_FileDeleteLine ($path,$i)
msgbox ("","","В файле теперь "&_FileCountLines ($path)&" строк, ведь удалена "&$i&"-я.")
Next
EndIf
EndFunc
Func _FileDeleteLine($sFile, $iLine)
$hFile = FileOpen($sFile, 0)
If $hFile = -1 Then Return SetError(1, 0, 0)
$sFileContent = ""
$aFileContent = StringSplit(StringStripCR(FileRead($hFile)), @LF)
FileClose($hFile)
For $i = 1 To $aFileContent[0]
If $i <> $iLine Then $sFileContent &= $aFileContent[$i] & @CRLF
Next
$hFile = FileOpen($sFile, 2)
If $hFile = -1 Then Return SetError(2, 0, 0)
FileWrite($hFile, StringTrimRight($sFileContent, 2))
Return FileClose($hFile)
EndFunc