Author Topic: Ошибка в работе цикла FOR  (Read 2596 times)

0 Members and 1 Guest are viewing this topic.

Miwel48

  • Зашел в гости
  • *
  • Posts: 3
    • View Profile
Ошибка в работе цикла FOR
« on: July 11, 2019, 12:27:06 PM »
Доброго времени суток.
Есть небольшой скрипт который открывает файл, и в нем по очереди запускает выполнение файлов.
Пролбема в том,что до вчера всё работало отлично, но вот сегодня оказалочь, что цикл запуска работает через раз.
Вот сам скрипт.
Code: [Select]
for($i, $i<1690, 1)
waitms(100)
$name=StrReadln("D:\text.txt",$i)
Execute($name)
logwrite($i)
logwrite($name)
waitms(7000)
KEYPRESS(#F12)
waitms(500)
keystring($i, 20)
keypress(#ENTER)
waitms(500)
LCLICK(1725,228)
END_CYC
  Halt

В лог выводит всё верно, но вот запускает файлы через раз.
Получается очень много файлов то четных, то нечетных.
Файлы эксель. Оффис 365.
Винда 10. Скачала последнюю версию кликкера.
Помогите, пожалуйста советом, где найти проблему и как это всё решить.

Спасибо заранее

Miwel48

  • Зашел в гости
  • *
  • Posts: 3
    • View Profile
Re: Ошибка в работе цикла FOR
« Reply #1 on: July 11, 2019, 01:25:37 PM »
перезагрузите и разгрузите комп от всех задач не нужных для непосредственной работы скрипта, увеличьте время между запусками файлов, закрывайте ранее открытые файлы после использования.
Можно вообще ввести контроль окончания открытия-закрытия файла и только после этого запускать следующий.

Я уже увеличивала время, комп и так вхолостую работает.
Подскажите, пожалуйста, в чем может быть ошибка ещё?
Лог идеальный, файлы запускает через один ровно.

Miwel48

  • Зашел в гости
  • *
  • Posts: 3
    • View Profile
Re: Ошибка в работе цикла FOR
« Reply #2 on: July 11, 2019, 03:26:22 PM »
спасибо огромное за ответ.

Космич

  • Активный участник
  • ***
  • Posts: 265
    • View Profile
Re: Ошибка в работе цикла FOR
« Reply #3 on: July 11, 2019, 03:54:51 PM »
Code: (clickermann) [Select]
FOR($i = 0, $i < 1690)
   $name = STRREADLN("D:\text.txt",$i)
   PRINT("$i = ", $i, " $name = ", $name)
   $check = 0
   WHILE($check = 0)
      EXECUTE($name)
      $time = $_time_t + 60
      WHILE( ($time > $_time_t) and ($check = 0) )
         $check = WNDFIND(STRCUT($name, 1, STRLEN($name) - 4))
      END_CYC
   END_CYC
   KEYPRESS(#F12)
   WAITMS(500)
   KEYSTRING($i, 20)
   KEYPRESS(#ENTER)
   WAITMS(500)
   LCLICK(1725,228)
END_CYC

HALT
«Иногда ты ваяешь до тех пор, пока до тебя не дойдёт, что именно ты делаешь.»