A
at
Гость
Добрый День, Всем! Прошу помочь.
Есть программа, которая ведет лог. Мы отслеживаем появление определенной строки в этом логфайле и вносим в нее изменения.
Вопрос: Как считывать только последнюю строчку в этом текстовом файле, игнорируя все предыдущие совпадения в тексте, если они были.
Есть программа, которая ведет лог. Мы отслеживаем появление определенной строки в этом логфайле и вносим в нее изменения.
Вопрос: Как считывать только последнюю строчку в этом текстовом файле, игнорируя все предыдущие совпадения в тексте, если они были.
Код:
Global $vScript_Name = 'PC', $sFile, $sRead
While 1
$sFile = @ScriptDir & '\prog.log'
$sRead = FileRead($sFile)
$sString_A = StringRegExp($sRead, '(?m)^(.*?\[.*?INFO.*?Script:\(Script:' & $vScript_Name & '\).*?Класс.*?на старте.*)$')
$sText_A = '(?m)^(.*?\[.*?INFO.*?Script:\(Script:' & $vScript_Name & '\).*?Класс.*?на старте.*)$'
$sReplace_Text_A = @HOUR & ':' & @MIN & ':' & @SEC & '.' & '<<< ИЗМЕНЕНО >>> Информация о классе изменена успешно !' & @CRLF
If $sString_A Then
Sleep(100)
$sReplace_A = StringRegExpReplace($sRead, $sText_A, $sReplace_Text_A)
FileDelete($sFile)
FileWrite($sFile, $sReplace_A)
Func_A()
EndIf
Sleep(5000);проверка каждые 5 сек.
WEnd
Func Func_A()
Sleep(10)
MsgBox(0, "Успех !", "", 1)
EndFunc