Что нового

Как реализовать команду при появлении 'слова' в html лог-файле.

A

at

Гость
Версия AutoIt: 3.3.6.1

Описание: Здравствуйте, прошу помочь.
Программа ведет log файл в формате html, который она обновляет каждую секунду.
При появлении в третьем столбце слова 'Append' нужно реализовать команду.


Примечания: лог файл нужно перевести в html формат
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
at,
Я не знаю, будет ли у Вас читаться файл, открытый в сторонней программе, но у меня работает.
Этим скриптом пишем лог-файл:
Код:
HotKeySet('7', '_Exit');7 - выход
$iCount = 0
$iStart = TimerInit()
While 1
	If TimerDiff($iStart) > 1000 Then
		$iCount += 1
		If Mod($iCount, 10) Then
			$sString = '<TR class=s6><TD>14:04:25</TD><TD><P class=s0>TFollowerBot0ID1</P>' & _
					'</TD><TD>TP2SlotSurround.OnNoConnection: ' & _
					'Разрыв соединения: Socket Error # 10061'
		Else
			$sString = '<TR class=s6><TD>14:10:35</TD><TD><P class=s0>TFollowerBot0ID3</P>' & _
					'</TD><TD>Append=' & Random(10000, 99999, 1) & _
					', q=1, dest=B</TD><TD>.</TD><TD>Внутренняя ошибка' & _
					'</TD><TD>0</TD></TR>'
		EndIf
		FileWriteLine(@ScriptDir & '\Dump' & @YEAR & '.' & Number(@MON) & '.' & Number(@MDAY) & '.html', $sString)
		$iStart = TimerInit()
	EndIf
	Sleep(20)
WEnd

Func _Exit()
	Exit
EndFunc   ;==>_Exit

Этим проверяем:
Код:
HotKeySet('8', '_Exit');8 - выход

$sSearchWord = 'Append'
$sFileName = @ScriptDir & '\Dump' & @YEAR & '.' & Number(@MON) & '.' & Number(@MDAY) & '.html'
$sText = FileRead($sFileName)
StringReplace($sText, $sSearchWord, '')
$iOldNum = @extended

$iStart = TimerInit()
While 1
	If TimerDiff($iStart) > 1000 Then ;проверка через 1 сек.9
		$sFileName = @ScriptDir & '\Dump' & @YEAR & '.' & Number(@MON) & '.' & Number(@MDAY) & '.html'
		If FileExists($sFileName) Then
			$sText = FileRead($sFileName)
			StringReplace($sText, $sSearchWord, '')
			$iNumNow = @extended
			$sText = ''
			If $iOldNum < $iNumNow Then
				Beep(500, 50)
				ToolTip('Кол-во слов ' & $sSearchWord & ' изменилось.' & @LF & 'Было: ' & _
						$iOldNum & ', стало: ' & $iNumNow, 0, 0)
				$iOldNum = $iNumNow
				;здесь можете делать то, что Вам надо.
			EndIf
		EndIf
		$iStart = TimerInit()
	EndIf
	Sleep(20)
WEnd

Func _Exit()
	Exit
EndFunc   ;==>_Exit
 
Автор
A

at

Гость
Всё работает. Спасибо за помощь. madmasles, подскажите, пожалуйста, как правильно изменить директорию файла в вашем скрипте.
Перенес вопрос в эту тему: http://autoit-script.ru/index.php/topic,6656.msg46088.html#msg46088
 
Верх