Автор Тема: Вывод информации в GUICtrlSetData  (Прочитано 409 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Оleg [?]

  • Новичок
  • *
  • Сообщений: 8
  • Репутация: 0
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Вывод информации в GUICtrlSetData
« Создано: Январь 11, 2018, 14:31:40 »
Скрипт ищет картинки , но еще не точно поэтому хочу отловить какую картинку он ищет косячно .Что нужно дописать в
Код: AutoIt [Выделить]
GUICtrlSetData($logbook, _nowtime() & " - Нашёл  "  & @CRLF,  1)

чтобы в логе после слова "_нашёл" отражалось название картинки.
вот сам кусок кода
Код: AutoIt [Выделить]
Func search()
        Global $posicount
       
        Local $glit1=_imagesearcharea("data\mos.bmp", 1, $smx1, $smy1, $smx2, $smy2, $x, $y, 30)
        Local $glit2=_imagesearcharea("data\kara.bmp", 1, $smx1, $smy1, $smx2, $smy2, $x, $y, 30)
        Local $glit3=_imagesearcharea("data\hint.bmp", 1, $smx1, $smy1, $smx2, $smy2, $x, $y, 30)
        Local $glit4=_imagesearcharea("data\wood.bmp", 1, $smx1, $smy1, $smx2, $smy2, $x, $y, 30)
                If  $hallo OR $glit1 OR $glit2 OR $glit3 OR $glit4 OR $glit5 Then
                $posicount = $x + $y
            MouseClick("LEFT", $x, $y, 1, 3)
            GUICtrlSetData($logbook, _nowtime() & " - Нашёл  "  & @CRLF,  1)
                         ..........................
 

Сейчас выводит сообщение 
12.45.23 Нашёл
Нужно чтоб после слова "нашёл" было название  бмп-шки

Русское сообщество AutoIt

Вывод информации в GUICtrlSetData
« Отправлен: Январь 11, 2018, 14:31:40 »

Оффлайн hedji [?]

  • Осваивающий
  • **
  • Сообщений: 189
  • Репутация: 29
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Re: Вывод информации в GUICtrlSetData
« Ответ #1, Отправлен: Январь 11, 2018, 15:03:14 »
Код: AutoIt [Выделить]
Local $glit1=_imagesearcharea("data\mos.bmp", 1, $smx1, $smy1, $smx2, $smy2, $x, $y, 30)
Local $glit2=_imagesearcharea("data\kara.bmp", 1, $smx1, $smy1, $smx2, $smy2, $x, $y, 30)
Local $glit3=_imagesearcharea("data\hint.bmp", 1, $smx1, $smy1, $smx2, $smy2, $x, $y, 30)
Local $glit4=_imagesearcharea("data\wood.bmp", 1, $smx1, $smy1, $smx2, $smy2, $x, $y, 30)
If  $glit1 Then
   GUICtrlSetData($logbook, _nowtime() & " - Нашёл data\mos.bmp "  & @CRLF,  1)
Endif
If  $glit2 Then
   GUICtrlSetData($logbook, _nowtime() & " - Нашёл data\kara.bmp "  & @CRLF,  1)
Endif
If  $glit3 Then
   GUICtrlSetData($logbook, _nowtime() & " - Нашёл data\hint.bmp "  & @CRLF,  1)
Endif
If  $glit4 Then
   GUICtrlSetData($logbook, _nowtime() & " - Нашёл data\wood.bmp "  & @CRLF,  1)
Endif
 


Оффлайн Оleg [?]

  • Новичок
  • *
  • Сообщений: 8

  • Автор темы
  • Репутация: 0
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Re: Вывод информации в GUICtrlSetData
« Ответ #2, Отправлен: Январь 11, 2018, 15:08:10 »
Спасибо за ответ , но такое решение не очень мне подходит т.к картинок 62шт и код растянется до неимоверного

Оффлайн hedji [?]

  • Осваивающий
  • **
  • Сообщений: 189
  • Репутация: 29
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Re: Вывод информации в GUICtrlSetData
« Ответ #3, Отправлен: Январь 11, 2018, 15:20:50 »
Код: AutoIt [Выделить]
Local $glit[4]
$glit[0] = "data\mos.bmp"
$glit[1] = "data\kara.bmp"
$glit[2] = "data\hint.bmp"
$glit[3] = "data\wood.bmp"

for $i in $glit
    $glit1=_imagesearcharea($i, 1, $smx1, $smy1, $smx2, $smy2, $x, $y, 30)
    if $glit1 Then
        GUICtrlSetData($logbook, _nowtime() & " - Нашёл " & $i & @CRLF,  1)
    endif
Next
 


Русское сообщество AutoIt

Re: Вывод информации в GUICtrlSetData
« Ответ #3 Отправлен: Январь 11, 2018, 15:20:50 »

Оффлайн Оleg [?]

  • Новичок
  • *
  • Сообщений: 8

  • Автор темы
  • Репутация: 0
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Re: Вывод информации в GUICtrlSetData
« Ответ #4, Отправлен: Январь 11, 2018, 16:45:41 »
Погонял потестил ,всё пишет,но тут возникла дополнительная сложность.У каждой бмп-шки после отлова при поиске нужно менять % совпадения ,а в данном случае
 
Код: AutoIt [Выделить]
$glit1=_imagesearcharea($i, 1, $smx1, $smy1, $smx2, $smy2, $x, $y, 30)



у всех будет 30.Как всё ето склеить,чтоб писало как в вашем последнем примере и можно было менять % совпадения у отдельно взятой бмп-шки как в первом моём примере?

Оффлайн hedji [?]

  • Осваивающий
  • **
  • Сообщений: 189
  • Репутация: 29
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Re: Вывод информации в GUICtrlSetData
« Ответ #5, Отправлен: Январь 11, 2018, 16:56:17 »
Сделайте двумерный массив для хранения пар "имя файла - процент", при выпадении перезаписывайте величину процента в массиве.

Оффлайн Hikari [?]

  • Новичок
  • *
  • Сообщений: 21
  • Репутация: 0
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Re: Вывод информации в GUICtrlSetData
« Ответ #6, Отправлен: Январь 11, 2018, 16:57:59 »
hedji, только хотел написать  ;D

Оффлайн Оleg [?]

  • Новичок
  • *
  • Сообщений: 8

  • Автор темы
  • Репутация: 0
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Re: Вывод информации в GUICtrlSetData
« Ответ #7, Отправлен: Январь 11, 2018, 17:10:35 »
Я новичок в AUtoIt да и вообще в программировании поэтому если не сложно напишите пример связанный с моим скриптом как это должно выглядеть

Русское сообщество AutoIt

Re: Вывод информации в GUICtrlSetData
« Ответ #7 Отправлен: Январь 11, 2018, 17:10:35 »

Оффлайн Hikari [?]

  • Новичок
  • *
  • Сообщений: 21
  • Репутация: 0
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Re: Вывод информации в GUICtrlSetData
« Ответ #8, Отправлен: Январь 11, 2018, 17:29:47 »
Oleg, милости просим
Код: AutoIt [Выделить]
$elements = 4
Local $glit[$elements]
Local $percents[$elements]
$glit[0] = "data\mos.bmp"
$glit[1] = "data\kara.bmp"
$glit[2] = "data\hint.bmp"
$glit[3] = "data\wood.bmp"
 $percents[0] = 10
$percents[1] = 15
$percents[2] = 40
$percents[3] = 30

for $i = 0 To $elements
    $glit1=_imagesearcharea($glit[i], 1, $smx1, $smy1, $smx2, $smy2, $x, $y, $percents[i])
    if $glit1 Then
        GUICtrlSetData($logbook, _nowtime() & " - Нашёл " & $i & @CRLF,  1)
    endif
Next
 


Оффлайн Оleg [?]

  • Новичок
  • *
  • Сообщений: 8

  • Автор темы
  • Репутация: 0
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Re: Вывод информации в GUICtrlSetData
« Ответ #9, Отправлен: Январь 11, 2018, 17:55:27 »
при таком раскладе ругается на
Код: AutoIt [Выделить]
iCupBot_.au3" (27385) : ==> Unknown function name.:
$glit1=_imagesearcharea($glit[i], 1, $smx1, $smy1, $smx2, $smy2, $x, $y, $percents[i])
$glit1=_imagesearcharea($glit[^ ERROR
>Exit code: 1    Time: 24.11

« Последнее редактирование: Январь 11, 2018, 18:29:35 от Оleg »

Оффлайн Hikari [?]

  • Новичок
  • *
  • Сообщений: 21
  • Репутация: 0
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Re: Вывод информации в GUICtrlSetData
« Ответ #10, Отправлен: Январь 11, 2018, 18:46:31 »
Oleg, попробуйте так
Код: AutoIt [Выделить]
$elements = 4
Local $glit[$elements]
Local $percents[$elements]
$glit[0] = "data\mos.bmp"
$glit[1] = "data\kara.bmp"
$glit[2] = "data\hint.bmp"
$glit[3] = "data\wood.bmp"
 $percents[0] = 10
$percents[1] = 15
$percents[2] = 40
$percents[3] = 30

for $i = 0 To $elements
    $glit1=_imagesearcharea($glit[i], 1, $smx1, $smy1, $smx2, $smy2, $x, $y, $percents[i])
    if $glit1 Then
        GUICtrlSetData($logbook, _nowtime() & " - Нашёл " & $i & @CRLF,  1)
    endif
Next
 

 

возможно for вышел за пределы массива...(я сам новичок в AutoIT)

Оффлайн Оleg [?]

  • Новичок
  • *
  • Сообщений: 8

  • Автор темы
  • Репутация: 0
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Re: Вывод информации в GUICtrlSetData
« Ответ #11, Отправлен: Январь 11, 2018, 18:56:49 »
Я не вижу разницы ,выделите то что вы поменяли

Оффлайн ra4o [?]

  • Скриптер
  • ****
  • Сообщений: 729
  • Репутация: 126
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Re: Вывод информации в GUICtrlSetData
« Ответ #12, Отправлен: Январь 11, 2018, 19:02:30 »
Исправьте эту строку
Код: AutoIt [Выделить]
for $i = 0 To $elements ; не верно, так как последний элемент массива на единицу меньше размера самого массива
for $i = 0 To $elements-1 ; так нужно
 


Оффлайн Оleg [?]

  • Новичок
  • *
  • Сообщений: 8

  • Автор темы
  • Репутация: 0
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Re: Вывод информации в GUICtrlSetData
« Ответ #13, Отправлен: Январь 11, 2018, 19:05:29 »
Нет ,та же самая ошибка
Код: AutoIt [Выделить]
$glit1=_imagesearcharea($glit[i], 1, $smx1, $smy1, $smx2, $smy2, $x, $y, $percents[i])
$glit1=_imagesearcharea($glit[^ ERROR
>Exit code: 1    Time: 11.69


Оффлайн Hikari [?]

  • Новичок
  • *
  • Сообщений: 21
  • Репутация: 0
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Re: Вывод информации в GUICtrlSetData
« Ответ #14, Отправлен: Январь 11, 2018, 19:14:55 »
Код: AutoIt [Выделить]
$glit[$i];я потерял "доллар" перед названием переменной

  :rofl:

Русское сообщество AutoIt

Re: Вывод информации в GUICtrlSetData
« Ответ #14 Отправлен: Январь 11, 2018, 19:14:55 »

 

Похожие темы

  Тема / Автор Ответов Последний ответ
2 Ответов
3087 Просмотров
Последний ответ Сентябрь 25, 2010, 01:50:52
от Yashied
15 Ответов
7286 Просмотров
Последний ответ Февраль 28, 2012, 16:36:00
от DarWiM
2 Ответов
2279 Просмотров
Последний ответ Ноябрь 07, 2011, 18:31:58
от Marselos
9 Ответов
3754 Просмотров
Последний ответ Сентябрь 05, 2012, 00:55:20
от uman
3 Ответов
1177 Просмотров
Последний ответ Февраль 19, 2014, 21:58:10
от ivsatel
3 Ответов
2036 Просмотров
Последний ответ Май 05, 2014, 02:13:29
от xaker
0 Ответов
903 Просмотров
Последний ответ Май 04, 2014, 15:35:56
от madmasles
1 Ответов
444 Просмотров
Последний ответ Декабрь 16, 2016, 17:34:53
от ra4o
2 Ответов
603 Просмотров
Последний ответ Декабрь 17, 2016, 23:05:53
от Alofa
17 Ответов
1040 Просмотров
Последний ответ Декабрь 20, 2016, 19:14:35
от kolosov