Что нового

Передача значений переменных из одной функции в другую.

Math

Новичок
Сообщения
85
Репутация
1
В моём скрипте есть большая часть кода, которая используется несколько раз в разных местах. И я сделал функцию из этой части кода, для того, что бы вызывать её из разных частей скрипта.

Структура программы такая:
Код:
Func _Func1()
for $i:=1 to 10
for $m:=1 to 20

$var =  IniRead ($INI, "var"&string($i), "var", "0")
$var2 =  IniRead ($INI2, "var"&string($m), "var", "0")
$var3 = $var + $var2
Send($var3)

Next
Next
EndFunc

Func _Func2()
for $m:=1 to 30
for $i:=1 to 10

$var =  IniRead ($INI, "var"&string($i), "var", "0")
$var2 =  IniRead ($INI2, "var"&string($m), "var", "0")
$var3 = $var + $var2
Send($var3)

Next
Next
EndFunc

;потом идёт Func3 и тд.


Я сделал функцию так:
Код:
Func _Func1()
for $i:=1 to 10
for $m:=1 to 20
_Var()
Next
Next
EndFunc

Func _Func2()
for $m:=1 to 30
for $i:=1 to 10
_Var()
Next
Next
EndFunc

;потом идёт Func3 и тд.

Func _Var()
$var =  IniRead ($INI, "var"&string($i), "var", "0")
$var2 =  IniRead ($INI2, "var"&string($m), "var", "0")
$var3 = $var + $var2
EndFunc


Когда скрипт доходит до выполнения функции, то говорит, что переменные $i и $m используются без объявления. Если сделать их глобальными, то в функцию возвращается значение этих переменных по умолчанию.
Как сделать так, что бы значение этих переменных по мере выполнения скрипта передавались в функцию?
 

Dm666

Осваивающий
Сообщения
220
Репутация
48
Re: Цикл и функция.

Переменная цикла ForNext создается как локальная, поэтому в функции ее не видно.
Как вариант - вызывать функцию с параметром, типа _MyFunction ($i)
Соответственно, сама функция будет выглядеть как
Код:
Func _MyFunction(ByRef $i)
; ...
EndFunc
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4 020
Репутация
622
Re: Цикл и функция.

Math
покажи код. но в целом, да, дело в области определения переменных. все переменные определенные в главном скрипте видны в самом скрипте после определения. все переменные определенные внутри функция видны только в пределах этой функции. исключение, если объявить переменную как Global, тогда она будет видна всюду после своего определения
 

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5 379
Репутация
2 713
Re: Цикл и функция.

Что цикл? Что функция? Когда же вы начнете называть темы по-человечески...
 

Garrett

Модератор
Локальный модератор
Сообщения
3 999
Репутация
964
Re: Цикл и функция.

OffTopic:
Yashied [?]
Что цикл? Что функция? Когда же вы начнете называть темы по-человечески...
Вот и я о том же :wall_brake:
А ещё и вопросы задавать было бы неплохо технически грамотно, с подробной информацией.
--------
Yuriy а в чем полезность данного сообщения? Может, вы поделитесь!



Добавлено:
Сообщение автоматически объединено:

Math [?]
что переменная $i используется без объявления. Что можно сделать в таком случае?
Объявить переменную.
 
Автор
M

Math

Новичок
Сообщения
85
Репутация
1
Переформулировал вопрос.
 

Yuri

AutoIT Гуру
Сообщения
737
Репутация
282
а в чем полезность данного сообщения? Может, вы поделитесь!
Garrett
Нет в этом сообщении абсолютно никакой полезности.
По крайней мере для меня.
Если бы мог, сам бы удалил это.
Вот теперь сам размышляю - почему такое произошло?
Вроде и алкоголем не злоупотреблял.
Если это в Ваших полномочиях, - удалите.
 
Верх