Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] Глобальные переменные (?)

Ответить
Настройки темы
[решено] Глобальные переменные (?)

Аватара для Frost_Imp

Пользователь


Сообщения: 53
Благодарности: 0

Профиль | Отправить PM | Цитировать


Всем доброго времени суток!
Возник у меня вопрос следующего характера: есть функция, которая определяет границы прямоугольника PixelCheckSum
Код: Выделить весь код
MsgBox(0, "Определение маяков", "Через 5 секунд указатель должен быть на левой границе маяков")
sleep(5000)
$mayak1 = MouseGetPos()
$coord = PixelGetColor( $mayak1[0] , $mayak1[1] )
_FileWriteLog(@ScriptDir & "\log.txt","Левая граница маяков " & $mayak1[0])
MsgBox(0,"Определение левой границы маяков завершено ", $mayak1[0] )
sleep (1000)
Указанный код, разумеется, для одной из границы, он повторяется еще три раза. В этой функции меня интересуюи переменные $mayak1[0] , $mayak1[1] и другие.
Делаю, собственно, чексумм
Код: Выделить весь код
$norm_beacon = PixelChecksum ( $mayak1[0], $mayak2[1], $mayak3[0], $mayak4[1], 1 )
Вначале скрипта я объявляю эти переменные как глобальные
Код: Выделить весь код
Global $mayak1[0]
Global $mayak2[1]
Global $norm_beacon
Потом пытаюсь использовать в другой функции при сравнении сумм пикселей
Код: Выделить весь код
$querty_beacon = PixelChecksum ( $mayak1[0], $mayak2[1], $mayak3[0], $mayak4[1], 1 )
_FileWriteLog(@ScriptDir & "\log.txt","Контрольная сумма пикселей при проверке " & $querty_beacon)
if $querty_beacon = $norm_beacon Then
и получаю ошибку
Array variable subscript badly formatted.:
Global $mayak1[0]
Global $mayak1[^ ERROR
Что я делаю не так?

Отправлено: 15:14, 28-07-2009

 

Аватара для Frost_Imp

Пользователь


Сообщения: 53
Благодарности: 0

Профиль | Отправить PM | Цитировать


И сразу вопрос вдогонку, как может получиться в SciTE, что по ctrl+F5 пишет
0 error(s), 0 warning(s)
а при попытке запуска скрипта выдает
Array variable subscript badly formatted.:
global $pos1[0], $pos1[1], $pos2[0], $pos2[1], $pos3[0], $pos3[1], $pos4[0], $pos5[0], $pos5[1], $pos6[0], $pos6[1]
global $pos1[^ ERROR

Или нельзя декларировать переменные вида
$pos1[0] то есть со значением в квадратных скобках? Такие переменные появляются при определении координат позиции курсора. Как мне тогда сохранить эти координаты, чтоб эти значение можно было использовать в других функциях одного скрипта?
P.S. Вероятно, это более понятное изложение вопроса, который я задал в первом посте

Отправлено: 15:30, 28-07-2009 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Googler


Сообщения: 3665
Благодарности: 1563

Профиль | Отправить PM | Цитировать


Цитата Frost_Imp:
получаю ошибку
Array variable subscript badly formatted.:
Global $mayak1[0]
Global $mayak1[^ ERROR
Что я делаю не так? »
пытаетесь объявить одномерный массив размерностью 0, объявляйте просто "Global $mayak1", а тип данных (одномерный массив размерности 2) будет задан функцией MouseGetPos()

Цитата Frost_Imp:
Такие переменные появляются при определении координат позиции курсора »
как уже сказал, получаете объявление не переменных, а массивов - в объявлении тип данных указывать не обязательно
Это сообщение посчитали полезным следующие участники:

Отправлено: 16:07, 28-07-2009 | #3


Аватара для Frost_Imp

Пользователь


Сообщения: 53
Благодарности: 0

Профиль | Отправить PM | Цитировать


То есть вместо
global $pos1[0], $pos1[1], $pos2[0], $pos2[1], $pos3[0], $pos3[1], $pos4[0], $pos5[0], $pos5[1], $pos6[0], $pos6[1]
пишем
global $pos1, $pos2, $pos3, $pos4, $pos5, $pos6
?
Спрашиваю, так как пока нет возможности проверить ксрипт на деле. Дебагер ошибку выдавать вроде перестал...
Просто если я объявляю $pos1, а использую значение $pos1[1] - это нормально?

Отправлено: 16:33, 28-07-2009 | #4


Аватара для Creat0R

Must AutoIt


Сообщения: 3054
Благодарности: 1009

Профиль | Сайт | Отправить PM | Цитировать


Цитата Frost_Imp:
если я объявляю $pos1, а использую значение $pos1[1] - это нормально? »
Не совсем. Выдача ошибки полностью зависит от успеха функции «MouseGetPos()», т.е нужно ещё проверять если она вернула массив:

Код: Выделить весь код
$mayak1 = MouseGetPos()
If IsArray($mayak1) Then PixelChecksum(...)
Цитата Frost_Imp:
как может получиться в SciTE, что по ctrl+F5 пишет
0 error(s), 0 warning(s)
а при попытке запуска скрипта выдает
Array variable subscript badly formatted.: »
Очень просто - первое это проверка синтаксиса, а с синтаксисом в этом случае всё в порядке, тут проблема образуется на лету, для это и нужно делать что называется Error Checking (проверки на ошибочность - см. пример выше).
Хм, действительно, это видимо недочёт проверки синтаксиса.

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community


Последний раз редактировалось Creat0R, 28-07-2009 в 17:11.

Это сообщение посчитали полезным следующие участники:

Отправлено: 16:48, 28-07-2009 | #5


Googler


Сообщения: 3665
Благодарности: 1563

Профиль | Отправить PM | Цитировать


Цитата Creat0R:
т.е нужно ещё проверять если она вернула массив »
ИМХО это перебор, конкретно для MouseGetPos() не предусмотрен такой исход
...хотя для большинства других ф-ций это необходимо - надо смотреть справку

Отправлено: 17:02, 28-07-2009 | #6


Аватара для Creat0R

Must AutoIt


Сообщения: 3054
Благодарности: 1009

Профиль | Сайт | Отправить PM | Цитировать


Цитата amel27:
конкретно для MouseGetPos() не предусмотрен такой исход »
Знаю... мне просто показалось что Frost_Imp указывает именно на эту ошибку, но сейчас я перечитал его сообщения, и понял что ошибка совсем в другом - в некорректном объявлении переменных (на что ты сразу и указал ).

Тогда я пожалуй поправлю свой ответ на вопрос о несхожести проверки синтаксиса...

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community


Отправлено: 17:10, 28-07-2009 | #7


Аватара для Frost_Imp

Пользователь


Сообщения: 53
Благодарности: 0

Профиль | Отправить PM | Цитировать


Цитата amel27:
пытаетесь объявить одномерный массив размерностью 0, объявляйте просто "Global $mayak1", а тип данных (одномерный массив размерности 2) будет задан функцией MouseGetPos() »
Благодарю! Этот совет помог!

Отправлено: 09:28, 29-07-2009 | #8


Аватара для Creat0R

Must AutoIt


Сообщения: 3054
Благодарности: 1009

Профиль | Сайт | Отправить PM | Цитировать


Цитата Frost_Imp:
Благодарю! Этот совет помог! »
Для благодарностей есть ссылка под каждым сообщением: Полезное сообщение

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community


Отправлено: 15:12, 29-07-2009 | #9



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] Глобальные переменные (?)

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
[решено] Знатокам cmd. Составные переменные?!! Spooner Microsoft Windows NT/2000/2003 1 14-05-2009 08:34
[решено] Пропадают переменные из форм Bask76 Вебмастеру 5 26-07-2008 22:02
[решено] глобальные переменные в php bruder Вебмастеру 17 19-04-2008 21:45
[решено] переменные для events VeshchiyOleg Вебмастеру 10 20-09-2006 14:47
Глобальные проблемы с локальной сетью fima Сетевые технологии 7 17-09-2003 14:38




 
Переход