Author Topic: include возникли вопросы  (Read 2012 times)

0 Members and 1 Guest are viewing this topic.

alien-77

  • Зашел в гости
  • *
  • Posts: 10
    • View Profile
include возникли вопросы
« on: March 17, 2015, 07:19:19 PM »
print ( $_time_m )
IF (($_time_m >16) & ($_time_m < 24))
LCLICK(90,40)
WAITMS(100)
#include "aukcion.cms"
END_IF

что то не работает условие, подскажите как сделать что бы скрипт вызывался в определенное время и заканчивался тоже?

ezfalcon

  • Освоившийся
  • **
  • Posts: 30
    • View Profile
Re: include возникли вопросы
« Reply #1 on: March 17, 2015, 09:28:19 PM »
Директивы #include обрабатываются препроцессором. У тебя код из файла aukcion.cms вставляется в то место, где указана директива. Никакого запуска aukcion.cms не происходит. Внимательно прочитай справку еще раз.

Предлагаю оформить код в файле aukcion.cms в виде процедуры:
Code: (clickermann) [Select]
sub(aukcion)
// содержимое aukcion.cms
end_sub

Соответственно твой код преобразуется примерно так:
Code: (clickermann) [Select]
#include "aukcion.cms"

print ( $_time_m )

$exit = 0

while ($exit ! 1)
IF (($_time_m > 16) & ($_time_m < 24))
LCLICK(90, 40)
aukcion() // запускаем код из aukcion.cms
END_IF
        WAITMS(100)
end_cyc

halt

Дополнение. Так и задумывалось, что скрипт должен выполняться между 17 до 23 мин включительно? С задержкой в 100мс будет порядка (23-17+1)*10*60 = 4200 запусков aukcion() в час. Если нужен один запуск, то в условие нужно либо добавить проверку флага однократного запуска, либо после запуска aukcion() вставить задержку на 7мин<=DELAY<60мин

[spoiler=флаг однократного запуска]
Code: (clickermann) [Select]
#include "aukcion.cms"
 
print ( $_time_m )
 
$exit = 0
$run = 0
 
while ($exit ! 1)
IF (($_time_m > 16) & ($_time_m < 24))
                IF ($run ! 1)
    LCLICK(90, 40)
    aukcion() // запускаем код из aukcion.cms
                    $run = 1
                END_IF
        ELSE
                $run = 0
END_IF
        WAITMS(100)
end_cyc
 
halt
[/spoiler]

[spoiler=задержка после запуска аукциона]
Code: (clickermann) [Select]
#include "aukcion.cms"
 
print ( $_time_m )
 
$exit = 0
 
while ($exit ! 1)
IF (($_time_m > 16) & ($_time_m < 24))
    LCLICK(90, 40)
    aukcion() // запускаем код из aukcion.cms
            WAIT(7*60)
END_IF
        WAITMS(100)
end_cyc
 
halt
[/spoiler]
« Last Edit: March 31, 2015, 09:41:04 AM by ezfalcon »

alien-77

  • Зашел в гости
  • *
  • Posts: 10
    • View Profile
Re: include возникли вопросы
« Reply #2 on: March 17, 2015, 09:33:51 PM »
как раз файл запускается, только без всяких условий, конечно я знаю про процедуры их там у меня полно, это большой файл, хотел отдельно его просто включать раз в час...может использовать команду LOAD ?
« Last Edit: March 17, 2015, 09:45:15 PM by alien-77 »

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: include возникли вопросы
« Reply #3 on: March 17, 2015, 11:42:53 PM »
Нет. Зачем лоад.
Раз у тебя там подпрограммы, переделай как показали.

Тело подпрограммы должно быть в корне скрипта (на верхнем уровне), а так оно получается внутри условия.