<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Серый форум &mdash; AHK: Переменные внутри функций и условий]]></title>
	<link rel="self" href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=15089&amp;type=atom" />
	<updated>2019-12-12T16:08:47Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.script-coding.com/viewtopic.php?id=15089</id>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Переменные внутри функций и условий]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=136826#p136826" />
			<content type="html"><![CDATA[<p>Через массив?</p>]]></content>
			<author>
				<name><![CDATA[Phoenixxx_Czar]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=34426</uri>
			</author>
			<updated>2019-12-12T16:08:47Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=136826#p136826</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Переменные внутри функций и условий]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=136820#p136820" />
			<content type="html"><![CDATA[<p>Это понял.<br />А если я, допустим, хочу ужать вот этот кусок кода:</p><div class="codebox"><pre><code>
Loop, read, C:\log.log,
{
    if InStr(A_LoopReadLine, &quot;Пирог&quot;)
	Last_found1 := A_LoopReadLine
	if InStr(A_LoopReadLine, &quot;Пицца&quot;)
	Last_found2 := A_LoopReadLine
	if InStr(A_LoopReadLine, &quot;Кабан&quot;)
	Last_found3 := A_LoopReadLine
}
</code></pre></div><p>Как мне это можно сделать? c:</p>]]></content>
			<author>
				<name><![CDATA[Clannad5]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=39853</uri>
			</author>
			<updated>2019-12-12T01:59:37Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=136820#p136820</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Переменные внутри функций и условий]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=136816#p136816" />
			<content type="html"><![CDATA[<p>Перебирает элементы массива/объекта.</p>]]></content>
			<author>
				<name><![CDATA[Phoenixxx_Czar]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=34426</uri>
			</author>
			<updated>2019-12-11T22:14:21Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=136816#p136816</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Переменные внутри функций и условий]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=136815#p136815" />
			<content type="html"><![CDATA[<p><strong>serzh82saratov</strong></p><p>А что делает строчка:<br /></p><div class="codebox"><pre><code>for k, v in arr</code></pre></div><p>Cкажите, пожалуйста.<br />Просто я не чисто хочу слизать код, а хочу понять, как с этим работать, в будущем.</p>]]></content>
			<author>
				<name><![CDATA[Clannad5]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=39853</uri>
			</author>
			<updated>2019-12-11T21:21:59Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=136815#p136815</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Переменные внутри функций и условий]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=136811#p136811" />
			<content type="html"><![CDATA[<p>Я тоже ничего не понимаю. Зачем нумеровать функции, если они идентичны.<br /></p><div class="codebox"><pre><code>
SS1 = 1200
SS2 = 2700
SS3 = 5400
a1 = &quot;пирог&quot;
a2 = &quot;пицца&quot;
a3 = &quot;кабан&quot;

Loop, 3 
	MsgBox % a%A_index% &quot;   &quot; f(SS%A_index%) 

f(S) {
    time := 19990101  ; *Midnight* of an arbitrary date.
    time += S, seconds
    FormatTime, mmss, %time%, mm:ss
    return S//3600 &quot;:&quot; mmss	
}
</code></pre></div><p>Лучше так:<br /></p><div class="codebox"><pre><code>
arr := {&quot;пирог&quot;:&quot;1200&quot;,&quot;пицца&quot;:&quot;2700&quot;,&quot;кабан&quot;:&quot;5400&quot;} 

for k, v in arr
	MsgBox % k &quot;   &quot; f(v) 

f(S) {
    time := 19990101  ; *Midnight* of an arbitrary date.
    time += S, seconds
    FormatTime, mmss, %time%, mm:ss
    return S//3600 &quot;:&quot; mmss	
}
</code></pre></div>]]></content>
			<author>
				<name><![CDATA[serzh82saratov]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27879</uri>
			</author>
			<updated>2019-12-11T19:26:47Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=136811#p136811</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Переменные внутри функций и условий]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=136809#p136809" />
			<content type="html"><![CDATA[<p><strong>teadrinker</strong></p><p>Скажем так, у меня есть функция, которая конвертирует секунды в часы и минуты:</p><div class="codebox"><pre><code>
Var(S1)
{
    time := 19990101  ; *Midnight* of an arbitrary date.
    time += S1, seconds
    FormatTime, mmss, %time%, mm:ss
    return S1//3600 &quot;:&quot; mmss
	
}
</code></pre></div><p>Вопрос:<br />Можно ли получить тот же эффект, перевести секунды в часы и минуты, не используя функций в коде вообще?</p><p>Есть число 18400, я хочу это число разбить на часы и минуты, как это можно сделать простым кодом, не используя функции вообще?</p><p>Ибо из-за того, что я хочу ужать скрипт, мне приходиться функции нумеровать через A_Index, но т.к Функции нельзя создать(как я сам понял) посредством перебора цифр от 1 до 3, то я получаю ошибку.</p><p>Я могу написать код, который будет вот так работать:</p><br /><div class="codebox"><pre><code>
Var(S1)
{
    time := 19990101  ; *Midnight* of an arbitrary date.
    time += S1, seconds
    FormatTime, mmss, %time%, mm:ss
    return S1//3600 &quot;:&quot; mmss
	
}
Var2(S2)
{
    time := 19990101  ; *Midnight* of an arbitrary date.
    time += S2, seconds
    FormatTime, mmss, %time%, mm:ss
    return S2//3600 &quot;:&quot; mmss	
}
Var3(S3)
{
    time := 19990101  ; *Midnight* of an arbitrary date.
    time += S3, seconds
    FormatTime, mmss, %time%, mm:ss
    return S3//3600 &quot;:&quot; mmss
}
</code></pre></div><p>но это длинно получается, как бы это укоротить в несколько строк?</p>]]></content>
			<author>
				<name><![CDATA[Clannad5]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=39853</uri>
			</author>
			<updated>2019-12-11T18:46:20Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=136809#p136809</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Переменные внутри функций и условий]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=136804#p136804" />
			<content type="html"><![CDATA[<p><strong>Clannad5</strong>, полная каша, ничего не понятно, постарайтесь упростить пример. В коде пользуйтесь отступами, иначе трудно читается.</p>]]></content>
			<author>
				<name><![CDATA[teadrinker]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=24515</uri>
			</author>
			<updated>2019-12-11T15:34:13Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=136804#p136804</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[AHK: Переменные внутри функций и условий]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=136794#p136794" />
			<content type="html"><![CDATA[<p>Здравствуйте!<br />Столкнулся с такой проблемой, решив сжать длинный код в маленький Loop с привязкой A_Index.</p><p>Проблема заключается в следующем..<br />есть участок кода:</p><div class="codebox"><pre><code>
SS1 = 1200
SS2 = 2700
SS3 = 5400
a1 = &quot;пирог&quot;
a2 = &quot;пицца&quot;
a3 = &quot;кабан&quot;

sc48::
Loop, 3
{
Last_found := 
sleep, 20
FileEncoding, UTF-8
Loop, read, C:\list.log,  ; Ищем последнею найденную строку
{
    if InStr(A_LoopReadLine, a%A_Index%)  ; здесь попытался использовать A_Index, чтобы перечислить переменные a1,a2 и a3
	Last_found := A_LoopReadLine ; нахожу последнее найденное значение
}
sleep, 20
b%A_index% := Last_found ; здесь нужно, чтобы переменные b1,b2 и b3 пометились найденными значениями, с помощью того же b%A_index%
sleep, 20
if b%A_index% != ; здесь идёт проверка b1, b2, b3 на наличии найденных слов, если что-то нашло то открывает действие
{
msgbox, b%A_index% найден
}
Else
{
msgbox, b%A_index% не найден
}
b%A_index% := SubStr(b%A_index%, 2, 8) ; далее идёт поиск, в найденных строчках, время и отделение его от текста
   RegExMatch(b%A_index%, &quot;^(..):(..):(..)$&quot;, t)
   HH1 := t1
   MM1 := t2
   SS1 := t3
   HH1 *= 60
   HH1 *= 60
   MM1 *= 60
   S%A_index% := HH1 + MM1 ; здесь сохраняется значение для функции, имея следующие названия: S1, S2, S3
S%A_index% += SS%A_index% ; S1,S2,S3 здесь прибавляют к себе значение, которые приготовлены, заранее, сверху. Пример S1 += SS1



b%A_index%(S%A_index%) ; здесь я пытаюсь вызвать функцию и мне выскакивает ошибка, хочу чтобы тут менялось b1(s1), b2(s2), b3(s3)
{
    time := 19990101  ; *Midnight* of an arbitrary date.
    time += SS1, seconds
    FormatTime, mmss, %time%, mm:ss
    return S%A_index%//3600 &quot;:&quot; mmss
	
}
}
</code></pre></div><p>Вопрос вот в чём:</p><p>Объясните, пожалуйста, чайнику, как правильно вызвать функцию через A_Index в этой строчке<br />b%A_index%(S%A_index%)</p><p>Не хочу прописывать эту функцию 3 раза в следующем ключе:</p><div class="codebox"><pre><code>
b1(S1) 
{
    time := 19990101  ; *Midnight* of an arbitrary date.
    time += SS1, seconds
    FormatTime, mmss, %time%, mm:ss
    return S%A_index%//3600 &quot;:&quot; mmss
}
b2(S2) 
{
    time := 19990101  ; *Midnight* of an arbitrary date.
    time += SS1, seconds
    FormatTime, mmss, %time%, mm:ss
    return S%A_index%//3600 &quot;:&quot; mmss
}
b3(S3) 
{
    time := 19990101  ; *Midnight* of an arbitrary date.
    time += SS1, seconds
    FormatTime, mmss, %time%, mm:ss
    return S%A_index%//3600 &quot;:&quot; mmss
}
</code></pre></div>]]></content>
			<author>
				<name><![CDATA[Clannad5]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=39853</uri>
			</author>
			<updated>2019-12-11T03:49:54Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=136794#p136794</id>
		</entry>
</feed>
