Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Topics - stadon

Pages: [1]
1
Всем доброго времени суток Уважаемые!

Написал скрипт, ну точнее собрал по частям с того что нашел на форуме, так как не особо соображаю в алгоритмах (
Проблема в том что файлы txt в среднем от 80 до 100 метров, и весь этот процесс очень туго идет, хотя тестировал на файлах до 2-3 метров - все летит как ракета )

Подскажите пожалуйста как можно это все безобразие оптимизировать и ускорить ?
Или как вариант чтение txt файлов с определенной папки по очереди (add.txt, add2.txt, ... add100.txt) к примеру.

Получилось вот что:

Code: (clickermann) [Select]
FOR ($a=0, $a<1)    // 1 кусок цикла
   
   WAITMS(10)
   LCLICK(1011,360)
   
END_CYC

LCLICK(344,705)

FOR ($i=0, $i<150) // 2 кусок
   
   INC ($num,1)    // нарастающая переменная, строка +1
   
   IF($num > TFCOUNT ("add.txt"))     // файл со строками
   HALT        // конец скрипта
   END_IF
   
   $b = TFREAD ("add.txt", $num)
   //TFDELETE("add.txt", 1)  - неактуально, очень замедляет процесс
   
   INC($e,1)  // нарастающая переменная, считает количество строк в логе
   
   TOCLIP(strconcat("Привет ",$b))
   
   KEYDOWN (#CTRL)
   KEYDOWN (#V)
   KEYUP (#V)
   KEYUP (#CTRL)
   
   KEYPRESS(#ENTER)
   WAITMS(5)
   
   LOGWRITE ($e)     // лог
   
END_CYC

Спасибо за Ваше внимание, буду очень благодарен за помощь!

2
Доброе время суток Уважаемые!
Помогите пожалуйста понять почему ЦП грузится на 100% и если возможно исправить скрипт.
Установлена Oracle VM VirtualBox там Windows XP PS3 x86 выделил 1GB виртуальной памяти и один процессор от i7-7700HQ.

Всю ночь сидел писал, тестил, читал форум и снова писал.
Все работает, но мне что то подсказывает что где-то что-то не так, иногда проскакивает строки кода (вывод из LOGWRITE).

Задача была что бы при вкл. ПК батником с автозагрузки запускался Ghrome и Clickermann, дальше вкладка с миллионами страниц..
1) идет проверка на загрузку страницы и javascript двумя bmp картинками.
2) сравнение картинками цвета, цепочка такая: синий подходит делаем скрин - следующая страница, если нет ищем серый - нашли - идем дальше, если нет ищем красный (это ошибка) - нашли - обновили, вернулись в начало проверок, если нет просто обновили и в начало.
3) все это дело в условии со временем, что бы через 5600 секунд перезагрузить ПК.

Вот код, посмотрите если не тяжело, буду очень благодарен! Заранее спасибо  :)

Code: (clickermann) [Select]
#autorun
WAIT(40)
IF($time1 < $_time_t)
   $time1 = $_time_t + 5600 // 5600 сек перезагрузка
   
   // Ожидание загрузки Chrome
   SUB(ожидание)
      $t = $_time_t + 30      // до 30 сек
      $check1 = 0
      WHILE($check1 = 0)
         GETSCREEN
         IF_PICTURE_IN (1650,270, 1820,306, "b.bmp", -1, 90)
            // Проверка 1 bmp
            // 0,0, $_xmax,$_ymax, file.bmp  53,26, 95,59,     12,1, 42,25, "file2.bmp"
            $check1 = 1
            WAITMS(100)
         ELSE             // если нет
            IF_PICTURE_IN (1650,270, 1820,306, "b2.bmp", -1, 90)
               // Проверка 2 bmp
               $check1 = 1
               WAITMS(100)
            ELSE         // если ничего не совпадает обновляем
               WAITMS(150)
               IF($t < $_time_t)
                  LOGWRITE ("ОБНОВИТЬ LC")
                  LCLICK(77,43)     // жмем LC по x, y
                  $t = $_time_t + 30
               END_IF
            END_IF
         END_IF
      END_CYC
   END_SUB
   // end ожидания
   
   // обновить страницу
   SUB(обновить)
      LCLICK(77,43)
      WAIT(5)
   END_SUB
   // end обновить страницу
   
   FOR ($i=0, $i<5000)   // начало цикла проверок,  повторить 5000 раз
      1:
      LOGWRITE ("1 СТАРТ")
      WAITMS(250)
      ожидание()
      //   LOGWRITE ("конец ожидания")
      LOGWRITE ("начало сравнения")
      $check2 = 0      // 1 сравнение
      WHILE($check2 = 0)
         WAITMS(150)
         GETSCREEN
         IF_PICTURE_IN (1650,270, 1820,306, "b2.bmp", -1, 90)
            $check2 = 1
            SCREENSHOTEX(0,0, $_xmax,$_ymax, "Image_xp1_", 1) // делаем скрин в  папку
            WAITMS(150)
            LOGWRITE ("GOOD НАЙДЕН")
         ELSE           // 2 сравнение
            WAITMS(250)
            LOGWRITE ("начало сравнения по серому цвету bmp картинкой")     // для точности
            $check2 = 0
            WHILE($check2 = 0)
               WAITMS(100)
               IF_PICTURE_IN (1610,375, 1765,535, "b.bmp", -1, 90)
                  $check2 = 1
                  LOGWRITE ("СЕРЫЙ найден")  // начать заново
                  WAITMS(150)
               ELSE       // 3 сравнение
                  LOGWRITE ("начало сравнения по красному цвету bmp картинкой")
                  $check3 = 0
                  WHILE($check3 = 0)
                     WAITMS(100)
                     IF_PICTURE_IN (1610,375, 1765,535, "red.bmp", -1, 90)
                        $check3 = 1
                        LOGWRITE ("красный найден")  // не подходит, ошибка, обновляем
                        LOGWRITE ("обновить страницу")
                        обновить()
                        WAITMS(150)
                        LOGWRITE ("В НАЧАЛО")
                        goto(1)        // Идем в начало
                     ELSE              // если вдруг отпадет инет
                        WAITMS(150)
                        LOGWRITE ("красный НЕ найден")
                        LOGWRITE ("обновить страницу")
                        обновить()
                        WAITMS(150)
                        LOGWRITE ("В НАЧАЛО")
                        goto(1)        // Идем в начало
                     END_IF
                  END_CYC
               END_IF
            END_CYC
         END_IF
      END_CYC
     
      LOGWRITE ("конец сравнения")
      WAITMS(150)
      LCLICK(1775,239)   // жмем след страницу
      LOGWRITE ("ЗАНОВО")
      WAIT(3)
   END_CYC
   
   FOR ($a=0, $a<1)        // после 5000 сравнений обновить страницу
      WAIT(5)
      LOGWRITE ("ОБНОВЛЕНИЕ, ПОСЛЕ 1 ФОР")
      обновить()
     
   END_CYC
   LOGWRITE ("RESTART")
END_IF

WAIT(10)
LCLICK(1892,7)
WAIT(5)
// рестарт ПК
EXECUTE ("TASKKILL","/ f /IM chrome.exe")
EXECUTE ("shutdown.exe", "/r /f /t 03")
HALT(1)

Pages: [1]