Author Topic: Перенос данных из ексель в картотеку  (Read 6368 times)

0 Members and 1 Guest are viewing this topic.

ee33e

  • Зашел в гости
  • *
  • Posts: 15
    • View Profile
Re: Перенос данных из ексель в картотеку
« Reply #15 on: December 19, 2016, 06:13:15 PM »
Спасибо за пример! Код для меня слишком сложен, вникать сейчас буду!)

А можно тот код (чуть выше) без распознавания как-то допилить?))) вроде чуть-чуть осталось))) просто я даже в справке таких команд не вижу чтобы понять как добавить недостающую прокрутку и что за глюки с определением цвета(((
« Last Edit: December 19, 2016, 06:25:21 PM by ee33e »

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: Перенос данных из ексель в картотеку
« Reply #16 on: December 19, 2016, 06:23:41 PM »
Прокрутку... пробуй. Кто его знает как там в твоей "секретной" программе.


И не получается перейти на другую карточку если в заданной точке подходящий цвет(((
Как проверить через лог какой он все же цвет определяет и делает ли это?

Цвет в точке
Code: (clickermann) [Select]
GETSCREEN
LOGWRITE(PXL(X,Y))

Что находит в коде
Code: (clickermann) [Select]
GETSCREEN
IF_PIXEL_IN(1059,892,1052,892, 255)
    LOGWRITE("Найден цвет 255 в координатах: ", $_return1, " / ", $_return2)
    // ...
ELSE
    LOGWRITE("Цвет НЕ найден")
END_IF


Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: Перенос данных из ексель в картотеку
« Reply #17 on: December 19, 2016, 06:32:08 PM »
ну вот же 163 строка
Code: (clickermann) [Select]
IF_PIXEL_IN(1059,892,1052,892, 255)1059 не может быть больше 1052 ! Зона поиска задана не верно.

ee33e

  • Зашел в гости
  • *
  • Posts: 15
    • View Profile
Re: Перенос данных из ексель в картотеку
« Reply #18 on: December 19, 2016, 07:04:04 PM »
Вот умница, Oraven, переключается все здорово! Большущее спасибо!))

Осталось меню(

Получается при превышении 37 строк автоматически переходит на другую "страницу" (нажимает pagedown)? так? значит при превышении 37 строки нужно дополнительно нажать pagedown, но как это добавить в код не знаю!(

где-то тут я догадываюсь)))
 
Code: (clickermann) [Select]
$page = INT($index / 37)     // тут 12 было по числу строк, если строк теперь 37, правильно?
      FOR($p=0, $p < $page)
         KEYPRESS(#PAGEDOWN)  // перелистываем страницу $page раз
         WAITMS(300)
      END_CYC
« Last Edit: December 21, 2016, 12:31:35 PM by ee33e »

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: Перенос данных из ексель в картотеку
« Reply #19 on: December 19, 2016, 08:27:53 PM »
С моим кодом распознавания номера тебе нужен лиш один цикл прокрутки и поиска.

Code: (clickermann) [Select]
$check = 0
WHILE($check ! 2)
   
   scan($num_excel) // в эту переменную возвращаем номер из Excel
   IF($check = 2) // и ищем его в списке
      MOVE($x,$y)
   ELSE // если не нашли листаем и снова ищем
      KEYPRESS(#PAGEDOWN)
      WAITMS(300)
   END_IF
   
END_CYC

ee33e

  • Зашел в гости
  • *
  • Posts: 15
    • View Profile
Re: Перенос данных из ексель в картотеку
« Reply #20 on: December 19, 2016, 09:44:39 PM »
ОООо друзья мои!!! Я стал мегамозг только что в чьем-то представлении, конечно с вашей огромной помощь!
Код корявый (мой уровень)), это как костыли к иномарке))) но блин сам допилил, даже результат уже не важен, главное работает!))
Пришлось разбить на 9 строк, и там надо было сократить количество номеров, ещё вместо pagedown вставил прокрутку три раза, тогда каждая "страница" начиналась с нового номера, как предполагается программой, да и в экселе прокрутка с помощью клавиши pagedown так же работает, а в этой программе все не так))) Ещё и страницы сами не возвращаются, пришлось добавить 11 раз pageup, чтобы, при условии самого последнего номера из списка, вернуться в начало! и все пошло! Задержки до минимума сейчас проверю и можно уходить с коллегой чай с тортом пить или что там у нее)))))

Oraven, твой код супер, но надо долго вникать, чего поздним вечером уже не сделаешь((
Но обязательно опробую и его!, получается картинки я свои любого размера могу заменить, без разницы?

Вот сам код, точнее измененная его часть по перелистыванию списка, если кому интересно, и кто хочет подсказать какими командами можно это дело укоротить, готовьтесь:))))
Code: (clickermann) [Select]
   $num = INT(FROMCLIP())   // число из буфера
   get_index($num)
   IF($index ! -1)
   LCLICK(321,233)   // открываем выпадающий список - поставлены координаты
   WAITMS(500)
   MOVE(509,293)
   WAITMS(200)

KEYDOWN(#PAGEUP)   
   WAITMS(10)
   KEYUP(#PAGEUP)
   WAITMS(10)
KEYDOWN(#PAGEUP)   
   WAITMS(10)
   KEYUP(#PAGEUP)
   WAITMS(10)
KEYDOWN(#PAGEUP)   
   WAITMS(10)
   KEYUP(#PAGEUP)
   WAITMS(10)
KEYDOWN(#PAGEUP)   
   WAITMS(10)
   KEYUP(#PAGEUP)
   WAITMS(10)
KEYDOWN(#PAGEUP)   
   WAITMS(10)
   KEYUP(#PAGEUP)
   WAITMS(10)
KEYDOWN(#PAGEUP)   
   WAITMS(10)
   KEYUP(#PAGEUP)
   WAITMS(10)
KEYDOWN(#PAGEUP)   
   WAITMS(10)
   KEYUP(#PAGEUP)
   WAITMS(10)
KEYDOWN(#PAGEUP)   
   WAITMS(10)
   KEYUP(#PAGEUP)
   WAITMS(10)
KEYDOWN(#PAGEUP)   
   WAITMS(10)
   KEYUP(#PAGEUP)
   WAITMS(10)
KEYDOWN(#PAGEUP)   
   WAITMS(10)
   KEYUP(#PAGEUP)
   WAITMS(10)
KEYDOWN(#PAGEUP)   
   WAITMS(10)
   KEYUP(#PAGEUP)
   WAITMS(10)


      $page = INT($index / 9)     
      FOR($p=0, $p < $page)
         WHEELDOWN                 // перелистываем страницу $page раз
         WAITMS(100)
         WHEELDOWN
         WAITMS(100)
WHEELDOWN 
         WAITMS(300)
      END_CYC
 
     $loc_index = $index - ($page * 9)     

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: Перенос данных из ексель в картотеку
« Reply #21 on: December 20, 2016, 09:39:09 AM »
Давным давно, в далёкой галактике, придумали циклы
Code: (clickermann) [Select]
FOR($pu=0, $pu < 11)
    KEYDOWN(#PAGEUP)
    WAITMS(10)
    KEYUP(#PAGEUP)
    WAITMS(10)
END_CYC