Author Topic: Каждый выделенный объект Scanpicture отправить в отдельную переменную  (Read 1652 times)

0 Members and 1 Guest are viewing this topic.

SimplY

  • Активный участник
  • ***
  • Posts: 125
    • View Profile
Добрый день!!! Прошу помощи!

Кликер кликает на картинку 3 раза и выделяется текст, который принадлежит этой картинке. Мне нужно его скопировать и отправить например, в переменную $a1. Затем кликер видит следующую картинку. Там аналогично клик 3 раза по картинке и выделяется второй текст. Его отправить в  $a2. Соответственно текст из третьей картинки в $a3 и так далее. Там цикл и я не знаю, как это сделать..

Code: (clickermann) [Select]
GETSCREEN(362,158,506,733)
   SCANPICTURE($ARR_SCAN, 362,158,506,733, "хк.bmp", -1, 70)
   
   $ARR_NUM = 0
   WHILE ($ARR_NUM < ARRSIZE($ARR_SCAN))
      $X = $ARR_SCAN [$ARR_NUM]
      INC($ARR_NUM,1)
      $Y = $ARR_SCAN [$ARR_NUM]
      INC($ARR_NUM,1)
      FOR($a=0,$a<3)
         LCLICK($X+30, $Y+6)
         WAITMS(20)
      END_CYC
      WAITMS(100)
      KEYDOWN (#CTRL)
      WAITMS (50)
      KEYPRESS (#C)
      KEYUP (#CTRL)
      WAITMS(10)
   END_CYC
   UNDEFINE($ARR_SCAN)
   WAITMS(150)
   TOCLIP(STRREPLACE($ST, EOL, ""))
 ELSE
   LOGWRITE ("Не найдено!")
   WAITMS(5)
END_IF

Заранее огромнейшее спасибо!!!
« Last Edit: September 30, 2020, 06:33:20 AM by SimplY »

4.У.В.@.К

  • Активный участник
  • ***
  • Posts: 117
    • View Profile
Привет!
Присваивать значения можно только существующим переменным. А в данном случае, даже не известно сколько их всего будет. Но нам не нужно их создавать. Будем добавлять скопированный текст в массив. Вместо $a1, $a2, $a3,... будет $ARR_TEXT[0], $ARR_TEXT[1], $ARR_TEXT[2] и так далее. Первая ячейка в массиве имеет индекс 0, а не единицу.

Скрипт я немного переделал. Разберешься короче.))

Code: (clickermann) [Select]
GETSCREEN(362,158,506,733)

SCANPICTURE($ARR_SCAN, 362,158,506,733, "хк.bmp", -1, 70)

FOR($ARR_NUM = 0, $ARR_NUM < ARRSIZE($ARR_SCAN))
   
   $X = $ARR_SCAN [$ARR_NUM]
   
   $Y = $ARR_SCAN [$ARR_NUM + 1]
   
   FOR($a=0,$a<3)
      LCLICK($X+30, $Y+6)
      WAITMS(20)
   END_CYC
   
   WAITMS(100)
   KEYDOWN (#CTRL)
   WAITMS (50)
   KEYPRESS (#C)
   KEYUP (#CTRL)
   WAITMS(10)
   
   ARRPUSH($ARR_TEXT, FROMCLIP()) // добавляем скопированный текст в массив
   
END_CYC

UNDEFINE($ARR_SCAN)

//=============================================

IF(ARRSIZE($ARR_TEXT)) // если массив с найденным текстом не пустой
   
   FOR($i = 0,  < ARRSIZE($ARR_TEXT)) // выводим найденный текст в лог
      LOGWRITE ($ARR_TEXT[$i])
   END_CYC
   
ELSE
   LOGWRITE ("Не найдено!")
END_IF

UNDEFINE($ARR_TEXT)