Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Программы » nnCron

Модерирует : gyra, Maz

 Версия для печати • ПодписатьсяДобавить в закладки
На первую страницук этому сообщениюк последнему сообщению

Открыть новую тему     Написать ответ в эту тему

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
Открыть новую тему     Написать ответ в эту тему

На первую страницук этому сообщениюк последнему сообщению

Компьютерный форум Ru.Board » Компьютеры » Программы » nnCron


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru