Прохожий
Покинул форум
Сообщений всего: 14
Дата рег-ции: Окт. 2018
Репутация: 0
|
Zireael пишет: Можно заменить это:
CODE:function del_space(string t){
int aw=size(t);
char a[50];
strcpy(#a[0], t);
t="";
for (int n=0; n<aw; n++){
if (a[n]!=' ')t=t+a[n];
}
return t;
}
На это:
CODE:function del_space(string t)
{
regexreplace(-1, #t, t, " ", "");
return t;
}
Для примера:
CODE:string s="1 2 3";
messagebox(s); // с пробелами
s=del_space(s);
messagebox(s); // без пробелов
function del_space(string t)
{
regexreplace(-1, #t, t, " ", "");
return t;
}
спасибо за это)
(Добавление)
Kibor пишет: out of memory в основном появляется если не правильно указана область в которой что то ищем или делаем.
Пример
CODE:int Image_0[5][5];
loadimage (#Image_0[0][0], "C:\Image_0.bmp");
int PosX_0[512];int PosY_0[512];
findimage(-1, #Image_0[0][0], 0, #PosX_0[0], #PosY_0[0], 100, 50, 90, 200, -1);
100, 50, 90, 200 неправильная зона.
По x координата конца зоны меньше начала.
Скрипт выдаст out of memory
Проверяйте эти все
defeatArrayTopX[j], defeatArrayTopY[j], defeatArrayBottomX[j], defeatArrayBottomY[j]
и тд.
Что в них и не выходит ли j за массив не известно.
спасибо за инфу. в моем случае у меня все массивы с точками были точно верные, так как, чтобы избежать подобных ошибок, да и ошибок, связанных с областями для сканирования в принципе, я использовал инструмент выделения, который и показывал координаты, а потом все списывал) моя ошибка была банальна... появлялся бесконечный цикл, из за того, что не было проверки на выход за область массива. Также распознавание текста принимало двоеточие, которое случайно оказывалось на том месте, где должен был быть знак " ! ". Случайность. добавил проверку. и теперь распознаю целое слово, а не один знак. пока работает. Всем спасибо за помощь. |