Zireael |
Отправлено: 12 Июля, 2020 - 14:56:11
|
Эксперт
Покинул форум
Сообщений всего: 4464
Дата рег-ции: Нояб. 2017
Репутация: 585
|
Цитата: время из формата string = "00:00:00" попробовать перевести секунды в целочисленном формате
CODE:int second = time("00:02:34"); // 154 секунды
messagebox(second);
second = time("5:16"); // 316 секунд
messagebox(second);
function time(string text)
{
string s[3]; initialarray(#s[0], "0");
regexsearch(3, #s[0], text, "\d+", RIGHTTOLEFT);
return formatsn(s[0]) + formatsn(s[1]) * 60 + formatsn(s[2]) * 3600;
} |
|
|
Kibor |
Отправлено: 10 Августа, 2020 - 19:25:17
|
Эксперт
Покинул форум
Сообщений всего: 8217
Дата рег-ции: Март 2013
Откуда: Одесса
Репутация: 357
|
Использование Питона для корректировка неточно распознанных слов при распознавание текста:
Но этот код работает быстрее
CODE:
if (runpython()==0){messagebox ("Не удалось запустить Python"); goto er;}//Запускаем интерпретатор Python
sendgetpython("import difflib");
//Массив верных слов
int kml=7;
string all_string[7]={"junior", "working", "recognition", "with", "violet", "interest", "renewal"}
messagebox ("корявое junlor = точое "+rez("junlor"));//Узнаем каккое слово близкое к корявому junlor
messagebox ("корявое worklng = точое "+rez("worklng"));//Узнаем каккое слово близкое к корявому worklng
messagebox ("корявое recognjtion = точое "+rez("recognjtion"));//Узнаем каккое слово близкое к корявому recognjtion
messagebox ("корявое recognllltjon точое = "+rez("recognllltjon"));//Узнаем каккое слово близкое к корявому recognllltjon
messagebox ("корявое lnterest = точое "+rez("lnterest"));//Узнаем каккое слово близкое к корявому lnterest
messagebox ("корявое vlolet = точое "+rez("vlolet"));//Узнаем каккое слово близкое к корявому vlolet
messagebox ("а на что похоже это? ietsert = точое "+rez("ietsert"));//Узнаем каккое слово близкое к корявому ietsert
closepython();//Завершаем работу с интерпретатором
er:;
function rez(string s)
{
double max=-1;
double t;
double i=0;
for (int n=0; n<kml; n++)
{
t=compare(s, all_string[n]);
if (t>max)
{
max=t;
i=n;
}
}
return all_string[i];
}
function compare(string s1, string s2)
{
sendgetpython("s1=^'"+s1+"^'");
sendgetpython("s2=^'"+s2+"^'");
__python
normalized1 = s1.lower()
normalized2 = s2.lower()
matcher = difflib.SequenceMatcher(None, normalized1, normalized2)
__end_python
return formatsn(sendgetpython("matcher.ratio()"));
}
|
|
|
konctantin777 |
Отправлено: 07 Декабря, 2020 - 20:19:56
|
Эксперт
Покинул форум
Сообщений всего: 1152
Дата рег-ции: Окт. 2017
Откуда: Архангельск
Репутация: 6
|
Здравствуйте. сделал код (Отобразить)//text_KIB=text_KIB_0;
if(regexsearch(1, #text_KIB2, text_KIB, "кубик")) // если слово найдено
{regexstart(#Pos_start); // узнали позицию первого символа
//sendmouse(LEFT, symbolxpos(Pos_start)+61+50, 116+symbolypos(Pos_start)-20, w_KIB); // добавить начальные координаты из readtext
//text_static0[1]="бросить..";pause(2500);
//text_KIB2=text_KIB;
if(regexsearch(1, #text_KIB2, text_KIB, "оплат")) // если слово найдено
{regexstart(#Pos_start); // узнали позицию первого символа
sendmouse(RIGHT, symbolxpos(Pos_start)+61+50, 116+symbolypos(Pos_start), w_KIB); // добавить начальные координаты из readtext
text_static0[1]="оплатить..";pause(500);//text_KIB=text_KIB_0;
if (regexsearch(1, #text_KIB2, text_KIB, "выкуп")) // если слово найдено
{regexstart(#Pos_start); // узнали позицию первого символа
sendmouse(RIGHT, symbolxpos(Pos_start)+61+50, 116+symbolypos(Pos_start), w_KIB); // добавить начальные координаты из readtext
text_static0[1]="выкупаем..";pause(1500);//text_KIB=text_KIB_0;
if(regexsearch(1, #text_KIB2, text_KIB, "кубик")) // если слово найдено
{regexstart(#Pos_start); // узнали позицию первого символа
sendmouse(RIGHT, symbolxpos(Pos_start)+61+50, 116+symbolypos(Pos_start), w_KIB); // добавить начальные координаты из readtext
text_static0[1]="кубик..";pause(500);//text_KIB=text_KIB_0;
if(regexsearch(1, #text_KIB2, text_KIB, "кубик")) // если слово найдено
{regexstart(#Pos_start); // узнали позицию первого символа
sendmouse(RIGHT, symbolxpos(Pos_start)+61+50, 116+symbolypos(Pos_start)-20, w_KIB); // добавить начальные координаты из readtext
text_static0[1]="кубик..";pause(1500);
}}}}}
Не пойму где ошибся ? Цель- если есть слово кубик, то ищем слово оплатить, если есть нажимаем, если нет- ищем слово выкупит- нажимаем, если нету, снова слово кубик и нажимаем на него.
А такой же шаблон (Отобразить)if (regexsearch(1, #text_KIB2, text_KIB, "купить")) // если слово найдено
{regexstart(#Pos_start); // узнали позицию первого символа
sendmouse(LEFT, symbolxpos(Pos_start)+61+50, 116+symbolypos(Pos_start)-20, w_KIB); // добавить начальные координаты из readtext
text_static0[1]="купить..";pause(1500);//text_KIB=text_KIB_0;
if (regexsearch(1, #text_KIB2, text_KIB, "отказ")) // если слово найдено
{regexstart(#Pos_start); // узнали позицию первого символа
sendmouse(LEFT, symbolxpos(Pos_start)+61+50, 116+symbolypos(Pos_start)-20, w_KIB); // добавить начальные координаты из readtext
text_static0[1]="отказ..";pause(1500);//text_KIB=text_KIB_0;
if (regexsearch(1, #text_KIB2, text_KIB, "аукцион")) // если слово найдено
{regexstart(#Pos_start); // узнали позицию первого символа
sendmouse(LEFT, symbolxpos(Pos_start)+61+50, 116+symbolypos(Pos_start)-20, w_KIB); // добавить начальные координаты из readtext
text_static0[1]="аукцион..";pause(1500);//text_KIB=text_KIB_0;
}}} но по-меньше- работает...
(RIGHT стоит, чтобы видеть, нажимает ли хоть где то)(Отредактировано автором: 07 Декабря, 2020 - 20:21:06) |
|
|
Zireael |
Отправлено: 08 Декабря, 2020 - 00:39:28
|
Эксперт
Покинул форум
Сообщений всего: 4464
Дата рег-ции: Нояб. 2017
Репутация: 585
|
А причём тут функция распознавания текста? Вопрос не соответствует теме.
Цитата: Не пойму где ошибся ?
Ошибка в логике.
CODE:if(найдено)
{
// действия если найдено
}
else
{
// действия если не найдено
} |
|
|
konctantin777 |
Отправлено: 08 Декабря, 2020 - 19:45:57
|
Эксперт
Покинул форум
Сообщений всего: 1152
Дата рег-ции: Окт. 2017
Откуда: Архангельск
Репутация: 6
|
konctantin777 пишет: if(regexsearch(1, #text_KIB2, text_KIB, "оплат")) // если слово найдено
{regexstart(#Pos_start); // узнали позицию первого символа
sendmouse(RIGHT, symbolxpos(Pos_start)+61+50, 116+symbolypos(Pos_start), w_KIB); // добавить начальные координаты из readtext
text_static0[1]="оплатить..";pause(500);//text_KIB=text_KIB_0;
А тут получается находит 1й символ из всего text_KIB ? А как находить именно 1й символ искомого слова тут ? (нажимает иногда в самое начало зоны поиска)(Отредактировано автором: 08 Декабря, 2020 - 19:54:51) |
|
|
konctantin777 |
Отправлено: 12 Декабря, 2020 - 18:18:16
|
Эксперт
Покинул форум
Сообщений всего: 1152
Дата рег-ции: Окт. 2017
Откуда: Архангельск
Репутация: 6
|
Zireael пишет: Дайте пример текста и код, где что-то неправильно находится или не находится.
CODE:кнопки_в_игре(nx1, ny1);
if (regexsearch(-1, #text_KIB2, text_KIB, "кубик")) // если слово найдено- заходим
{ text_static0[1]="внутри кубика";
кнопки_в_игре(nx1, ny1);
if (regexsearch(-1, #text_KIB, text_KIB, "вькупит")) // если слово найдено- нажимаем
{regexstart(#Pos_start); // узнали позицию первого символа
sendmouse(LEFT, 40+symbolxpos(Pos_start), symbolypos(Pos_start)+130, w_KIB); // добавить начальные координаты из readtext
text_static0[1]="Выкупаю..";Что_моргает(); pause(5500);кнопки_в_игре(nx1, ny1);
}
if (regexsearch(-1, #text_KIB2, text_KIB, "оплати")) // если слово найдено- нажимаем
{regexstart(#Pos_start); // узнали позицию первого символа
sendmouse(LEFT, 40+symbolxpos(Pos_start), symbolypos(Pos_start)+130, w_KIB); // добавить начальные координаты из readtext
text_static0[1]="Оплачиваю..";pause(1500);кнопки_в_игре(nx1, ny1);
}
кнопки_в_игре(nx1, ny1);
if (regexsearch(-1, #text_KIB2, text_KIB, "кубик")) // если слово найдено- нажимаем
{regexstart(#Pos_start); // узнали позицию первого символа
sendmouse(LEFT, 40+symbolxpos(Pos_start), symbolypos(Pos_start)+130, w_KIB); // добавить начальные координаты из readtext
text_static0[1]="Бросаю кубик..";pause(1500);кнопки_в_игре(nx1, ny1);
}
}
Или находится, но щелкает куда то не туда... |
|
|
|