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

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

21. Kibor - 03 Мая, 2023 - 11:54:04 - перейти к сообщению
 konctantin777 пишет:
А как правильно, чтобы текст не деформировался ?

Не ставить галку удалять пробелы и находить это ДА и кликать по нему
 Цитата:
string Text;
loadsymbolbase ("C:\Program Files (x86)\Kibor\basetext.sib");
readtext (RU, #Text, 2, 1, -1, -1, -1, -1, -1, 0, 50, 53, 346, 135, 361, -1);
if (regexsearch(1, #Text, Text, "(?<=\s)д(\s|)а(?=\s)")) // найти слово да
{
mousemove(53+symbolxpos(regexstart(0)), 346+symbolypos(regexstart(0)));
}
22. Zireael - 03 Мая, 2023 - 11:56:15 - перейти к сообщению
 Цитата:
regexsearch(1, #Text, Text, "д(\s|)а" ); // найти слово да

CODE:
regexsearch(1, #Text, Text, "д\s*а"); // найти слово да, между буквами могут быть пробелы
23. Kibor - 03 Мая, 2023 - 11:57:36 - перейти к сообщению
Я уже поправил.
И учел что это должно быть отдельное ДА? а не часть слова(для просмотра ссылки Вам необходимо авторизоваться)
CODE:
(\s|)
может быть либо один пробел либо не быть. Пробел всегда может быть только один после распознавания.
24. Zireael - 03 Мая, 2023 - 12:26:11 - перейти к сообщению
 Цитата:
(\s|)

Вместо | должна быть *, скобки не нужны.
 Цитата:
И учел что это должно быть отдельное ДА? а не часть слова

Не учтено что слово может быть в самом начале или конце строки.
Так надо:
CODE:
string Text;
loadsymbolbase ("C:\Program Files (x86)\Kibor\basetext.sib");
readtext (RU, #Text, 2, 1, -1, -1, -1, -1, -1, 0, 50, 53, 346, 135, 361, -1);
if (regexsearch(1, #Text, Text, "(?<=\s|^)д\s*а(?=\s|$)")) // найти слово да
{
mousemove(53+symbolxpos(regexstart(0)), 346+symbolypos(regexstart(0)));
}
25. Kibor - 03 Мая, 2023 - 12:38:11 - перейти к сообщению
 Zireael пишет:
Вместо | должна быть *, скобки не нужны.

Разве (\s|)
не означает
Либо пробел либо ничто? Работает же. Так что вроде правильно тоже.

 Zireael пишет:
Не учтено что слово может быть в самом начале или конце строки.

Не учтено.
26. Zireael - 03 Мая, 2023 - 13:01:00 - перейти к сообщению
Тут вообще правильнее \s?
потому что пробелов 0 или 1.
Учитывая сложность чтения регулярок, усложнять выражение лишними скобками не стоит.
27. Kibor - 03 Мая, 2023 - 13:13:55 - перейти к сообщению
 Zireael пишет:
Тут вообще правильнее \s?

Я не спец по регуляркам.
Знаю только что | это или.
И тут будет пробел или ничто. И работает.

Powered by ExBB FM 1.0 Final