2
« on: July 04, 2019, 08:52:55 PM »
SUB(recognize, $x1,$y1, $x2,$y2)
GETFILELIST($Letters_arr, "Letters\*.bmp")
FOR($Let_num=0,$Let_num<ARRSIZE($Letters_arr))
STRSEPARATE($Letters_arr[$Let_num], "_", $a_l)
SCANPICTURE($ARR_SCAN, $x1,$y1, $x2,$y2, STRCONCAT("Letters\", $Letters_arr[$Let_num]), -1, STRREPLACE($a_l[ARRSIZE($a_l)-1],".bmp",""))
UNDEFINE($a_l)
FOR($arr_num=0,$arr_num<ARRSIZE($ARR_SCAN),2)
ARRPUSH($ARR_OUT, $ARR_SCAN[$arr_num])
ARRPUSH($ARR_OUT, STRCUT($Letters_arr[$Let_num], 1, 1))
END_CYC
UNDEFINE($ARR_SCAN)
END_CYC
$siz = ARRSIZE($ARR_OUT)
$srtcheck = 0
$srt = 0
FOR($a=$siz-2,($a>0)&($srt=0),-2)
FOR($b=0,$b<$a,2)
IF($ARR_OUT[$b] > $ARR_OUT[$b+2])
$srtcheck = 1
$tmp = $ARR_OUT[$b]
$tmp2 = $ARR_OUT[$b+1]
$ARR_OUT[$b] = $ARR_OUT[$b+2]
$ARR_OUT[$b+1] = $ARR_OUT[$b+3]
$ARR_OUT[$b+2] = $tmp
$ARR_OUT[$b+3] = $tmp2
END_IF
END_CYC
IF($srtcheck = 0)
$srt = 1
END_IF
END_CYC
$str = ""
FOR($a=0,$a<ARRSIZE($ARR_OUT),2)
IF(STRLEN($str) > 0)
IF($ARR_OUT[$a]-$ARR_OUT[$a-2] > 100) // обпределение пробела
$str = STRCONCAT($str, " ")
END_IF
$str = STRCONCAT($str, $ARR_OUT[$a+1])
ELSE
$str = $ARR_OUT[$a+1]
END_IF
END_CYC
UNDEFINE($ARR_OUT)
UNDEFINE($ARR_SCAN)
END_SUB
GETSCREEN
COLORMODE(6)
SCANPICTURE($ARR_SCAN2, 1161, 205, 1327, 232, "Впродаже.bmp", -1, 80) // поиск "В продаже", уточнить область поиска
COLORMODE(8)
FOR($i=0,$i<ARRSIZE($ARR_SCAN2),2)
recognize($ARR_SCAN2[$i]+320, $ARR_SCAN2[$i+1]-7, $ARR_SCAN2[$i]+402, $ARR_SCAN2[$i+1]+16) // область распознавания
LOGWRITE("№: ", $i, " ", $str)
IF($str <= 10000) // действие если значение меньше или равно 10000
waitms(40 + $S_CORR)
move(1756,222)
waitms(60 + $S_CORR)
lDown(1756,222)
waitms(53 + $S_CORR)
lUp(1756,222)
waitms(14 + $S_CORR)
// deleted
waitms(9 + $S_CORR)
keyUp(118) // клик "В продаже"
waitms(7 + $S_CORR)
move(1775,976)
waitms(100 + $S_CORR)
lDown(1775,976)
waitms(85 + $S_CORR)
lUp(1775,976)
waitms(83 + $S_CORR)
// deleted
waitms(9 + $S_CORR)
keyUp(118) // Клик "Купить", уточнить координату
WAITMS(500)
$i=9999 // выход из цикла
HALT // Стоп (если таребуется)
END_IF
END_CYC
UNDEFINE($ARR_SCAN2)
IF($i ! 9999) // если не найдено подходящей цены
waitms(100 + $S_CORR)
move(1806,112)
waitms(100 + $S_CORR)
lDown(1806,112)
waitms(100 + $S_CORR)
lUp(1804,113)
waitms(100 + $S_CORR)
// deleted
waitms(100 + $S_CORR)
keyUp(118) // Клик "Обновить", уточнить координату
END_IF
WAITMS(2000)
вот немного доделанная версия, я потестил заменив условие обнаружения на цвет надписи но все равно ничего не присходит