Кибор » Кибор - Интегрированная среда разработки ботов » Вопросы и решение проблем » Распознавание текста и клик по букве

Страниц (1): [1]
 

1. ivantu - 20 Ноября, 2020 - 02:05:05 - перейти к сообщению
Друзья такое , дело есть зона поиска текста в ней возможно появление слов, то слева то справа, эти слова я определяю получив общий текст из зоны поиска убираю все буквы кроме уникальных для каждого слова тем самым отсеивая, к примеру два слова, это две кнопки:

"Повторить Дальше"

через функцию отсеиваю лишнее
CODE:

readtext (RU , #read_text, 3, 1, -1, -1, -1, -1, -1, 0, -1, 166, 273, 794, 309, wind);

regexreplace(-1, #next, read_text, "[^^ш]", ""); // Что оставляем


дальше мне нужно совершить клик именно по букве "ш" это реально?
у меня всегда кликает в стартовые координаты поиска..

CODE:
adb_tap(166+symbolxpos(0)+rand(-5, 5), 273+symbolypos(0)+rand(-5, 5));
2. Zireael - 20 Ноября, 2020 - 02:17:28 - перейти к сообщению
Надо не удалять символы из строки, а найти нужный, после чего узнать его позицию в тексте.
regesearch + regexstart.
3. ivantu - 20 Ноября, 2020 - 02:46:46 - перейти к сообщению
Честно пытался, но не понимаю как работать с regexstart , она принимает int , что передать ей?

CODE:
regexstart(#Pos_start[0]);



Параметр - Указатель на int или массив int, в который запишутся стартовые позиции найденных фрагментов. Массив выделять не менее количества фрагментов.

Возвращает количество найденных фрагментов, как и regexsearch.
(Добавление)
Все нашел пример, спасибо, проблема решена.

CODE:
string Text;
readtext (RU | MARK, #Text, 8, 1, -1, -1, -1, -1, -1, 0, -1, 77, 150, 787, 321, -1);//распознали текст
if (regexsearch(1, #Text, Text, "Вопросы и решение проблем")==1)//если в распознанном тексте есть фраза
{
int u=regexstart(0);//узнали номер первого символа фразы в распознанном тексте
int x=symbolxpos(u)+77;//зная номер символа узнаем его позицию по x относительно начала заны распознавания
int y=symbolypos(u)+150;//зная номер символа узнаем его позицию по y относительно начала заны распознавания
}
4. Zireael - 20 Ноября, 2020 - 02:57:40 - перейти к сообщению
CODE:
string s = "Повторить Дальше"; // текст

int position = find_position(s, "ш"); // поиск буквы ш
if(position!=-1) // если найдена
{
messagebox("Позиция символа в строке: "+format(position));
}


function find_position(string text, string search)
{
string temp;
int pos;
if(regexsearch(1, #temp, text, search))
{
if(regexstart(#pos))return pos;
}
return -1;
}

Powered by ExBB FM 1.0 Final