Автоматизация и боты

 Помощь      Поиск      Пользователи
Сайт Кибор     Программируемый кликер Кибор     Видео обучение     Заказать бот

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

> Без описания
KeSeG
Отправлено: 08 Сентября, 2018 - 15:39:39
Post Id



Пользователь
Участник


Покинул форум
Сообщений всего: 52
Дата рег-ции: Сент. 2018  
Репутация: 0




Помогите пожалуйста решить проблему, я более чем уверен она связана с моей полной некомпетентностью, но информацию не смог найти.

Стоит задача. распознать числа на экране. Вот схематическая картинка.
(для просмотра ссылки Вам необходимо авторизоваться)
т.е. цифр в строке может быть разное количество, и они находятся в диапазоне от 0-1000000.

Цифра распознал, записал их в переменную типа string (Text[4])

т.е .я имею что

Text[0]=17 8
Text[1]=100 5
Text[2]=76 56 98
Text[3]=856123

Как "выдрать" из этого текста (строки string) каждое число по отдельности?

что бы привести к виду:


ch[0]=17
ch[1]=8
ch[2]=100
ch[3]=5

и так далее, где ch = int.


p.s. еще раз прошу прощения за некомпетентность и "гуманитарность" вопроса.
 
 Top
Zireael
Отправлено: 08 Сентября, 2018 - 15:49:53
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 4447
Дата рег-ции: Нояб. 2017  
Репутация: 585




http://kibor-bot.com/forum/topic...m=6&topic=65
Если не разберетесь, то вечером напишу как сделать.
 
 Top
Kibor
Отправлено: 08 Сентября, 2018 - 16:05:59
Post Id



Администратор
Эксперт


Покинул форум
Сообщений всего: 8191
Дата рег-ции: Март 2013  
Откуда: Одесса
Репутация: 357




CODE:
string Text[4];

int ch[100];
int k;

Text[0]="17 8";
Text[1]="100 5";
Text[2]="76 56 98";
Text[3]="856123";

ffn(#Text[0], 4, #ch[0], #k);

for (int f=0; f<k; f++)
{
messagebox (ch[f]);
}

function ffn(string #tx, int p, int #tc[0], int #tk)
{
string t;
char c[1000];
int sz;
tk=0;
for (int n=0; n<p; n++)
{
sz=size(tx[n]);
strcpy(#c[0], Text[n]);
t="";
for (int x=0; x<sz; x++)
{
if (c[x]==' ')
{
tc[tk]=formatsn(t);
tk++;
t="";
}
else t=t+c[x];
}
tc[tk]=formatsn(t);
tk++;
t="";
}
}


Или использовать спец функцию поиска как в выше после, если лень самому сделать как тут.
 
 Top
Zireael
Отправлено: 08 Сентября, 2018 - 19:25:27
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 4447
Дата рег-ции: Нояб. 2017  
Репутация: 585




 Цитата:
Цифра распознал, записал их в переменную типа string (Text[4])

Записывать проще в строку, чем в массив в данном случае.
CODE:
// http://kibor-bot.com/forum/topic.php?forum=6&topic=65
// dll должна быть в папке с кибор
external(INT, "regex_iterator", "regex_iterator", pathfolder()+"\regex.dll" );

string Text="17 8 100 5 76 56 93 856123"; // строка с числами
char result[20][10];
int ch[20];

int x=regex_iterator(Text, "\d+", address(#result[0][0]), sizearray(result), sizearray(result[]));
messagebox("Найдено чисел: "+format(x));
if(x>0)
{
for(int i=0; i<x; i++)ch[i]=formatsn(format(#result[i][0])); // пишем числа в массив int

messagebox(ch[0]);
messagebox(ch[1]);
messagebox(ch[2]);
}
 
 Top
KeSeG
Отправлено: 08 Сентября, 2018 - 19:41:13
Post Id



Пользователь
Участник


Покинул форум
Сообщений всего: 52
Дата рег-ции: Сент. 2018  
Репутация: 0




Спасибо большое. Вроде бы получилось) Счастлив как слоняка)
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 1 (гостей: 1, зарегистрированных: 0)
« Вопросы и решение проблем »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 




Powered by