возможно ли это?

Те, кто ей начинают пользоваться, уже не в силах остановиться! Она может все. Или почти все!

Сообщение Ironwit » Чт май 08, 2003 1:19 pm

Может и перейду на PowerPro, но для этого мне нужно точно знать, реально ли то, что мне нужно.

есть файл со строками вида 16:14:55 08/05/2003 обнаружен адрес 255.0.8, где меняются соответственно время, дата, адрес.

мне нужно, чтобы скрипт контролировал такие вещи

Если 08/05/2003=тек.дате и последнее найденное время (16:14:55) меньше текущего на час и более отобразить адрес. В идеале, нужно отображать не адрес, а имя с ним связанное, хранящееся в отдельном файле.

Реально ли это?
Ironwit
Прапор
 
Сообщений: 60
Зарегистрирован: Пт фев 28, 2003 9:36 am
Откуда: Сумы, Украина
Пункты репутации: 0

Сообщение dAnIK SeNT » Пт май 09, 2003 12:07 am

2Ironwit
Конечно, реально. Я бы написал тебе скрипт соответствующий, просто некогда сейчас.
2Скриптописатели
Может кто-нибудь поможет челу? <!--emo&:)-->Изображение<!--endemo-->
Последний раз редактировалось dAnIK SeNT Пт май 09, 2003 12:07 am, всего редактировалось 1 раз.
яНЯЕД ОН СОПЪФЙЕ: Athlon 64 X2 5200+ @2,86GHz / nF 570 SLI (ASUS M2N SLI Deluxe) / 4 Gb RAM (4x1Gb Kingston) / 2,9Tb SATAII (0,50+0,64+0,75+1,00Tb WD) / ASUS 8800 GTS512 / 2x NEC-Optiarc AD-7173 / Thermaltake ToughPower 650W / 2x30W Microlab Solo-2 / 20" LCD Benq FP202W (wide) / openSUSE 11.1 / KDE 4.2.1
<!--coloro:Navy--><span style="color:Navy"><!--/coloro-->оН БЯЕЛ БНОПНЯЮЛ - Б email. б ICQ ОНЪБКЪЧЯЭ ПЮГ Б ОНКЦНДЮ.<!--colorc--></span><!--/colorc-->
dAnIK SeNT
Маршал
 
Сообщений: 5101
Зарегистрирован: Чт мар 28, 2002 7:48 pm
Откуда: яяяп
Пункты репутации: 0

Сообщение Ironwit » Пт май 09, 2003 6:46 am

2dAnIK SeNT

спасибо. Мне не обязательно скрипт писать, достаточно указать как примерно его делать, что применять... Я ж программист все таки <!--emo&:)-->Изображение<!--endemo-->
Ironwit
Прапор
 
Сообщений: 60
Зарегистрирован: Пт фев 28, 2003 9:36 am
Откуда: Сумы, Украина
Пункты репутации: 0

Сообщение dAnIK SeNT » Сб май 10, 2003 8:41 am

Хелп надо полистать... Алгоритм то примитивный. Делаешь скрипт, чтоб он тебе каждые ... секунд/минут/часов запускался.
есть функции и плагин для работы с файлами.
тебе только самую последнюю строку надо читать?
вообще, расскажи, зачем все это, если не секрет <!--emo&:)-->Изображение<!--endemo-->
яНЯЕД ОН СОПЪФЙЕ: Athlon 64 X2 5200+ @2,86GHz / nF 570 SLI (ASUS M2N SLI Deluxe) / 4 Gb RAM (4x1Gb Kingston) / 2,9Tb SATAII (0,50+0,64+0,75+1,00Tb WD) / ASUS 8800 GTS512 / 2x NEC-Optiarc AD-7173 / Thermaltake ToughPower 650W / 2x30W Microlab Solo-2 / 20" LCD Benq FP202W (wide) / openSUSE 11.1 / KDE 4.2.1
<!--coloro:Navy--><span style="color:Navy"><!--/coloro-->оН БЯЕЛ БНОПНЯЮЛ - Б email. б ICQ ОНЪБКЪЧЯЭ ПЮГ Б ОНКЦНДЮ.<!--colorc--></span><!--/colorc-->
dAnIK SeNT
Маршал
 
Сообщений: 5101
Зарегистрирован: Чт мар 28, 2002 7:48 pm
Откуда: яяяп
Пункты репутации: 0

Сообщение Reuben » Вс май 11, 2003 8:54 am

Собственно вот примерно оно
Код: выделить все
;Итак , считаем, что у нас есть файл C:\loggy\loggt.log со строчками типа
;12:45:37 03.12.2003 23213.442432.34324.432432
;нам надо вывести на экран те строчки, в которых дата сегодняшняя и время -- не позже, чем час назад.
Debug &(time)

logfilehandle=file.open("C:\loggy\loggt.log","r")

;открыли этот файл на чтение, file - plugin file.dll , open  -- один из его сервисов, "r" -- от "read" подробнее в  
; %powerprodir%\plugins\file.txt

currentformatteddate= formatdate ("dd.MM.yyyy",date)
Debug &(currentformatteddate)
currettimesec=(select(time,2) *60 + select(time,3,4))*60 + select(time,-2)
; откройте powerpro.chm, наберите в поиске formatdate ...
; здесь же заметим, что formatdate ("dd.mm.yyyy".,date) -- текущая дата именно в том формате, что и в нашем файле.
; currettimesec -- время в секундах, вычесляем 1 раз чтоб не мучиться.

if (logfilehandle > 0) Do
  for (lineNum=1;1;LineNum=LineNum+1)
     logentry = File.ReadLine(logfilehandle)
     if (File.Eof(logfilehandle))
        break
;        обрабатываем файл построчно.
     linetime = select(&(logentry),8)
;      время -- первые 8 символов в строчке
      linedate = select(&(logentry),10,19)
      lineaddress = remove(&(logentry),19)
      if (linedate eq currentformatteddate) Do
; eq -это знак равно, можно так же ==        
        linetimesec=(select( linetime,2) *60 + select( linetime,4,5))*60 + select( linetime,-2)
      timedifference = currettimesec -  linetimesec
          if ((timedifference le 3600) and (timedifference ge 1)) Do
         Debug &( lineaddress)  &(timedifference)
; Печатаем адрес (а точнее то, что в строчке стоит после даты )  в окне дебага.
;соответственно вместо этого подставляется что нужно
     
         Endif
     
      Endif
  endfor
else
  MessageBox ("ok", "Error opening file "++"C:\loggy\loggt.log")
endif
Debug &(time)

; вот и все
file.closeall

проверялось с помощью файлов, порожденных следующим скриптом:

Код: выделить все

logfilehandle=file.open("C:\loggy\loggt.log","w")
Debug &(time)

for (i=1; i<5001; i=i+1)
   str = random(24) ++ ":" ++  random(60) ++ ":" ++ random(60-1) ++ " " ++   (random(10)+1) ++ "." ++ "05.2003    " ++ &(i)++ "." ++ &(i) ++ "."++ &(i)++ "." ++ &(i) ++ "."++ &(i)
   if ((select(&(str),3,3) ne ":")) Do
   str = "0" ++ str   
   endif  
   
   
   if ((select(&(str),6,6) ne ":")) Do
   str = select(&(str),3) ++ "0" ++ remove(&(str),3)   
   endif  


       if ((select(&(str),9,9) ne " ")) Do
   str = select(&(str),6) ++ "0" ++ remove(&(str),6)   
   endif  


       if ((select(&(str),19,19) ne "3")) Do
   str = select(&(str),9) ++ "0" ++ remove(&(str),9)   
   endif  


   file.writeline(&(logfilehandle),"&(str)")
   endfor
file.closeall
Debug &(time)
<span style='color:purple'>
Ugly girl is better than nothing
Nothing is better than pretty girl
</span>
Reuben
Подполковник
 
Сообщений: 532
Зарегистрирован: Ср дек 04, 2002 8:59 am
Откуда: Jerusalem
Пункты репутации: 0

Сообщение Gregory » Вс май 11, 2003 10:27 am

Возник маленький вопрос, не в тему...
Что именно делает file.closeall?
Закрывает все файлы, которые открыты из данного скрипта, или закрывает все файлы, которые отктыты с помощью плагина file. Если второе, то такой командой лучше не пользоваться.
Gregory
Капитан
 
Сообщений: 156
Зарегистрирован: Пн мар 03, 2003 7:28 pm
Откуда: Киев
Пункты репутации: 0

Сообщение Reuben » Вс май 11, 2003 10:47 am

<!--QuoteBegin--></span><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td>QUOTE </td></tr><tr><td id='QUOTE'><!--QuoteEBegin-->Что именно делает file.closeall?
Закрывает все файлы, которые открыты из данного скрипта, или закрывает все файлы, которые отктыты с помощью плагина file. Если второе, то такой командой лучше не пользоваться. <!--QuoteEnd--></td></tr></table><span class='postcolor'><!--QuoteEEnd-->
Боюсь, что второе. Пользоваться все же мне кажется можно, только осторожно <!--emo&:)-->Изображение<!--endemo-->
<span style='color:purple'>
Ugly girl is better than nothing
Nothing is better than pretty girl
</span>
Reuben
Подполковник
 
Сообщений: 532
Зарегистрирован: Ср дек 04, 2002 8:59 am
Откуда: Jerusalem
Пункты репутации: 0

Сообщение Ironwit » Пн май 12, 2003 4:29 am

2Reuben

громадное спасибо. <!--emo&:)-->Изображение<!--endemo--> Следующий вопрос - я вижу что powerpro может отображать панельки с инфой. Можно ли в случае срабатывания твоего скрипта (еще раз спасибо) отображать не сообщение, а панельку? Или я не правильно понял по поводу панелек?
Ironwit
Прапор
 
Сообщений: 60
Зарегистрирован: Пт фев 28, 2003 9:36 am
Откуда: Сумы, Украина
Пункты репутации: 0

Сообщение Ironwit » Пн май 12, 2003 6:35 am

ok, более или менее разбираюсь с программой. Возник вопрос - можно ли делать *Info панельки которые видны только при опред.событии?
Ironwit
Прапор
 
Сообщений: 60
Зарегистрирован: Пт фев 28, 2003 9:36 am
Откуда: Сумы, Украина
Пункты репутации: 0

Сообщение Ironwit » Пн май 12, 2003 6:58 am

2dAnIK SeNT

это нужно для такой вещи. У меня есть одна система(на работе) которая в лог пишет информацию о передаче данных с точек разбросанных по городу, все точки звонят раз в час, нужно контролировать все ли точки отзвонились и передали данные.
Ironwit
Прапор
 
Сообщений: 60
Зарегистрирован: Пт фев 28, 2003 9:36 am
Откуда: Сумы, Украина
Пункты репутации: 0

Сообщение Reuben » Пн май 12, 2003 8:28 am

<!--QuoteBegin--></span><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td>QUOTE </td></tr><tr><td id='QUOTE'><!--QuoteEBegin-->ok, более или менее разбираюсь с программой. Возник вопрос - можно ли делать *Info панельки которые видны только при опред.событии? <!--QuoteEnd--></td></tr></table><span class='postcolor'><!--QuoteEEnd-->
Можно сделать панельку, на ней отображать значение переменной
и включить таймер, который прятал бы панельку если переменная пустая, и показывал бы ее иначе.Не лучший вариант, я лично таймеры не очень люблю. Но если у тебя события, по которым она должна появляться или исчезать, возникают в результате действий в скриптах, так и пиши лучше в скрипте bar hide имя панели и bar show имя панели
<span style='color:purple'>
Ugly girl is better than nothing
Nothing is better than pretty girl
</span>
Reuben
Подполковник
 
Сообщений: 532
Зарегистрирован: Ср дек 04, 2002 8:59 am
Откуда: Jerusalem
Пункты репутации: 0

Сообщение Ironwit » Пн май 12, 2003 8:45 am

2Reuben

спасибо. Буду рыть далее. <!--emo&:)-->Изображение<!--endemo-->
Ironwit
Прапор
 
Сообщений: 60
Зарегистрирован: Пт фев 28, 2003 9:36 am
Откуда: Сумы, Украина
Пункты репутации: 0

Сообщение Ironwit » Пн май 12, 2003 9:01 am

как останавливать зависший\долго работающий скрипт?
Ironwit
Прапор
 
Сообщений: 60
Зарегистрирован: Пт фев 28, 2003 9:36 am
Откуда: Сумы, Украина
Пункты репутации: 0

Сообщение Reuben » Пн май 12, 2003 9:38 am

Если он же завис -- плохо, но можно "убить" powerpro

А если еще не завис, но может, вставь в разные места
if (ctrl) quit
<span style='color:purple'>
Ugly girl is better than nothing
Nothing is better than pretty girl
</span>
Reuben
Подполковник
 
Сообщений: 532
Зарегистрирован: Ср дек 04, 2002 8:59 am
Откуда: Jerusalem
Пункты репутации: 0

Сообщение Ironwit » Пн май 12, 2003 9:53 am

2Reuben
то есть проверяет нажатие клавиши ctrl и если да, то выходит? Спасибо. <!--emo&:)-->Изображение<!--endemo-->
Ironwit
Прапор
 
Сообщений: 60
Зарегистрирован: Пт фев 28, 2003 9:36 am
Откуда: Сумы, Украина
Пункты репутации: 0

След.

Вернуться в Windows PowerPro

Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 5