DJ makrus
Full Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору #( ERROR_PASS_#_87 NoActive : cron_dir ( -- a u ) tm.exe ONLYDIR ; : StrNextAdr ( a u -- a+1 u-1 ) 1- SWAP 1+ SWAP ; : StrPrevAdr ( a u -- a-1 u+1 ) 1+ SWAP 1- SWAP ; : 2LastInStr { a1 u1 a2 u2 \ aprev uprev aprev2 uprev2 -- aprev uprev a3 u3 flag } \ a1u1 - исходный текст, a2u2 - искомая строка \ flag = 0 если искомая строка не найдена, \ если flag=1, a3u3 - содержит текст от последнего вхождения искомой строки и до конца, aprev_uprev - содержит текст от предпоследнего вхождения \ искомой строки и до конца, если вхождение только одно, то содержит пустую строку; \ если flag=0, a3u3 - содержит исходный текст, aprev_uprev - пустую строку u1 u2 < IF ." Исходный текст меньше строки поиска!" THEN S" " TO uprev TO aprev a1 u1 BEGIN a2 u2 SEARCH WHILE uprev2 TO uprev aprev2 TO aprev 2DUP TO uprev2 TO aprev2 StrNextAdr REPEAT aprev uprev 2SWAP DUP u1 = IF FALSE ELSE StrPrevAdr TRUE THEN ; : GetLastLine ( a u -- a1 u1 flag ) 2DUP 2>R crlf 2LastInStr IF 2DUP NIP 2 = IF 2OVER NIP 0= IF 2DROP 2R> ELSE 2R> 2DROP 2SWAP StrNextAdr StrNextAdr THEN 2- 2SWAP ELSE 2R> 2DROP StrNextAdr StrNextAdr 2SWAP THEN TRUE ELSE 2R> 2DROP 2SWAP FALSE THEN NIP NIP ; : WaitAccessFile { a u ms -- } a u FILE-ATIME BEGIN ms PAUSE 2DUP a u FILE-ATIME D< IF 2DROP TRUE ELSE FALSE THEN UNTIL ; Time: START-TIME Action: BEGIN cron.log 2DUP 10000 WaitAccessFile \ в цикле, с периодичностью 10000 мс, ожидаем когда лог nnCron'а будет изменен 2DUP 3 - S" bak" S+ 2DUP 2>R FCOPY 2R> \ делаем копию файла 2DUP FILE 2SWAP FDELETE \ прочитываем ее в память, а копию удаляем GetLastLine \ получаем последнюю строчку из файла IF S" /.*ERROR PASS # 87/" RE-MATCH \ проверяем - содержит ли она сообщение об ошибке IF S" Перезагружаемся из-за ошибки: ERROR PASS # 87" crlf S+ CRON-LOG \ выводим в лог причину перезагрузки и перезагружаем nnCron StartIn: "%cron_dir%" START-APP: %COMSPEC% /c net stop nncron && \ start/wait nncron.exe 5000 PAUSE BYE && \ net start nncron THEN THEN AGAIN )# | Всего записей: 529 | Зарегистр. 25-03-2004 | Отправлено: 07:05 28-06-2008 | Исправлено: DJ makrus, 09:27 28-06-2008 |
|