<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Серый форум &mdash; AHK: Использование функции Add(x)]]></title>
		<link>http://forum.script-coding.com/viewtopic.php?id=12104</link>
		<atom:link href="http://forum.script-coding.com/extern.php?action=feed&amp;tid=12104&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «AHK: Использование функции Add(x)».]]></description>
		<lastBuildDate>Mon, 31 Oct 2016 08:47:28 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: AHK: Использование функции Add(x)]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=108712#p108712</link>
			<description><![CDATA[<p>Уберите знаки процентов и разделите переменные просто пробелами.</p>]]></description>
			<author><![CDATA[null@example.com (teadrinker)]]></author>
			<pubDate>Mon, 31 Oct 2016 08:47:28 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=108712#p108712</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Использование функции Add(x)]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=108707#p108707</link>
			<description><![CDATA[<div class="quotebox"><cite>teadrinker пишет:</cite><blockquote><p>MsgBox, % MyFunc()</p><p>MyFunc()&nbsp; {<br />&nbsp; &nbsp;Return A_AhkPath<br />}</p></blockquote></div><p>Привет. Возник еще вопрос.<br />Если у меня вот такая функция:</p><p>Генерация Снилс<br /></p><div class="codebox"><pre><code>

SnilsNew()
{
;получаем случайные числа для снилса
Random, r1, 0,9
Random, r2, 0,9
Random, r3, 1,9
Random, r4, 0,9
Random, r5, 0,9
Random, r6, 1,9
Random, r7, 0,9
Random, r8, 0,9
Random, r9, 1,9

;присвоение и расчет
a1 := r9*1
a2 := r8*2
a3 := r7*3
a4 := r6*4
a5 := r5*5
a6 := r4*6
a7 := r3*7
a8 := r2*8
a9 := r1*9

;суммируем итог, для подсчета суммы.
summ := a1 + a2 + a3 + a4 + a5 + a6 + a7 + a8 + a9

;если меньше 100. то истог суммы ставим в конец
if (summ &lt; 100)
{
return %r1%%r2%%r3%%r4%%r5%%r6%%r7%%r8%%r9%%summ%
}

;если = 100 или = 101. то ставим в конец 00
if (summ == 100) or (summ == 101)
{
return %r1%%r2%%r3%%r4%%r5%%r6%%r7%%r8%%r9%00	
}

;если больше 100. но не ровна 100 и 101. то сумму делим на остаток 101 и остаток помещаем в итог
if (summ &gt; 100) and (summ != 100) and (summ !=101)
{
a3 := mod(summ,101)
	if a3 &lt;=9
	return %r1%%r2%%r3%%r4%%r5%%r6%%r7%%r8%%r9%0%a3%
	
	else 
	return %r1%%r2%%r3%%r4%%r5%%r6%%r7%%r8%%r9%%a3%
}
sleep 10
}

</code></pre></div><p>Как мне вывести сразу столько параметров ?<br /></p><div class="codebox"><pre><code>%r1%%r2%%r3%%r4%%r5%%r6%%r7%%r8%%r9%%a3%</code></pre></div><p>Когда я пробую делать как в коде:<br /></p><div class="codebox"><pre><code>return %r1%%r2%%r3%%r4%%r5%%r6%%r7%%r8%%r9%%a3%</code></pre></div><p>И запускаю так<br />SnilsNew()</p><p>То он ничего не выдает. Я видимо что-то опять туплю ? <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" /></p>]]></description>
			<author><![CDATA[null@example.com (Autosql)]]></author>
			<pubDate>Mon, 31 Oct 2016 08:10:54 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=108707#p108707</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Использование функции Add(x)]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=108664#p108664</link>
			<description><![CDATA[<p>О спасибо. Заработало.</p>]]></description>
			<author><![CDATA[null@example.com (Autosql)]]></author>
			<pubDate>Fri, 28 Oct 2016 13:36:16 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=108664#p108664</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Использование функции Add(x)]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=108663#p108663</link>
			<description><![CDATA[<div class="quotebox"><cite>Autosql пишет:</cite><blockquote><p>Но Vibor :... должен быть во вне.</p></blockquote></div><p>Тогда так:<br /></p><div class="codebox"><pre><code>driver := ComObjCreate(&quot;Selenium.ChromeDriver&quot;)
Vibor := {Create: &quot;//a[@data-id=&#039;94F13529BB3C3800D2A0AAED09EC277841279D79&#039;]&quot;}

Add(&quot;Create&quot;)

Add(NAME)
{
   global driver, Vibor
   driver.findElementByXPath(Vibor[NAME]).click
}</code></pre></div><div class="quotebox"><cite>Autosql пишет:</cite><blockquote><p>при этом у вас нет точки вот тут. Vibor[NAME] = Vibor.[NAME], а она нужна, иначе он не сможет найти этот элемент в словаре.</p></blockquote></div><p>Это не так, см. ссылку, которую я приводил, такой синтаксис, другого нет.</p>]]></description>
			<author><![CDATA[null@example.com (teadrinker)]]></author>
			<pubDate>Fri, 28 Oct 2016 12:15:01 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=108663#p108663</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Использование функции Add(x)]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=108662#p108662</link>
			<description><![CDATA[<p>Ну я сделал как должно быть.<br /></p><div class="codebox"><pre><code>
Vibor := {Create: &quot;//a[@data-id=&#039;94F13529BB3C3800D2A0AAED09EC277841279D79&#039;]&quot;}
</code></pre></div><p>Должен быть во вне.<br />Так же у вас не было Return.<br />Как я понял без него он ничего не выводит и не делает.<br />У меня же цель, на выходе получить именно строку. </p><div class="codebox"><pre><code>
driver.findElementByXPath(&quot;Vibor.Название что я передал&quot;)
</code></pre></div><p>Если ваш запрос то вот он.<br /></p><div class="codebox"><pre><code>
Add(&quot;Create&quot;)

Add(NAME)
{
   global driver
   Vibor := {Create: &quot;//a[@data-id=&#039;94F13529BB3C3800D2A0AAED09EC277841279D79&#039;]&quot;}
   driver.findElementByXPath(Vibor[NAME]).click
}
</code></pre></div><p>Но Vibor :... должен быть во вне. Получается код такой.</p><div class="codebox"><pre><code>
   Vibor := {Create: &quot;//a[@data-id=&#039;94F13529BB3C3800D2A0AAED09EC277841279D79&#039;]&quot;}

Add(NAME)
{
   global driver
   driver.findElementByXPath(Vibor[NAME]).click
}

Add(&quot;Create&quot;)
</code></pre></div><p>при этом у вас нет точки вот тут. Vibor[NAME] = Vibor.[NAME], а она нужна, иначе он не сможет найти этот элемент в словаре.</p>]]></description>
			<author><![CDATA[null@example.com (Autosql)]]></author>
			<pubDate>Fri, 28 Oct 2016 11:47:58 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=108662#p108662</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Использование функции Add(x)]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=108661#p108661</link>
			<description><![CDATA[<p>Да где ж он такой же? Сравните свою функцию, и мою.</p>]]></description>
			<author><![CDATA[null@example.com (teadrinker)]]></author>
			<pubDate>Fri, 28 Oct 2016 11:21:54 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=108661#p108661</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Использование функции Add(x)]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=108659#p108659</link>
			<description><![CDATA[<p>Что то не получается.<br />Вот такой же код ?</p><div class="codebox"><pre><code>
driver := ComObjCreate(&quot;Selenium.ChromeDriver&quot;)
Vibor := {Create: &quot;//a[@data-id=&#039;94F13529BB3C3800D2A0AAED09EC277841279D79&#039;]&quot;}

MsgBox, % Add(&quot;Create&quot;, driver)

Add(NAME, obj)
{
   Return obj.findElementByXPath(Vibor[NAME]).click
}
</code></pre></div><p>После запуска ничего не выводит.</p>]]></description>
			<author><![CDATA[null@example.com (Autosql)]]></author>
			<pubDate>Fri, 28 Oct 2016 10:36:21 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=108659#p108659</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Использование функции Add(x)]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=108653#p108653</link>
			<description><![CDATA[<div class="quotebox"><cite>Autosql пишет:</cite><blockquote><p>Как сделать функцию где нет входящего параметра. Где просто при её вызове она выдает какой то результат.</p></blockquote></div><div class="codebox"><pre><code>MsgBox, % MyFunc()

MyFunc()  {
   Return A_AhkPath
}</code></pre></div><div class="quotebox"><cite>Autosql пишет:</cite><blockquote><p>Как сделать функцию где будет 1 или 2 входящих параметра, где в итоге этот входящий параметр подставится в определенное место, и на выходе я получу целую строку.</p></blockquote></div><div class="codebox"><pre><code>MsgBox, % MyFunc(&quot;Hello&quot;)

MyFunc(str)  {
   Return str . &quot;, World!&quot;
}</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (teadrinker)]]></author>
			<pubDate>Fri, 28 Oct 2016 08:59:31 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=108653#p108653</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Использование функции Add(x)]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=108652#p108652</link>
			<description><![CDATA[<div class="quotebox"><cite>Autosql пишет:</cite><blockquote><p>нужна точка.</p></blockquote></div><p>Перед квадратными скобками точка <a href="https://autohotkey.com/docs/Objects.htm#Usage">не нужна</a>.<br /></p><div class="quotebox"><cite>Autosql пишет:</cite><blockquote><p>Ваш вариант не работает.</p></blockquote></div><p>Я не учёл, что внутри функции не виден внешний объект driver. Попробуйте так:<br /></p><div class="codebox"><pre><code>Add(&quot;Create&quot;)

Add(NAME)
{
   global driver
   Vibor := {Create: &quot;//a[@data-id=&#039;94F13529BB3C3800D2A0AAED09EC277841279D79&#039;]&quot;}
   driver.findElementByXPath(Vibor[NAME]).click
}</code></pre></div><p>Или так:<br /></p><div class="codebox"><pre><code>Add(&quot;Create&quot;, driver)

Add(NAME, obj)
{
   Vibor := {Create: &quot;//a[@data-id=&#039;94F13529BB3C3800D2A0AAED09EC277841279D79&#039;]&quot;}
   obj.findElementByXPath(Vibor[NAME]).click
}</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (teadrinker)]]></author>
			<pubDate>Fri, 28 Oct 2016 08:55:42 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=108652#p108652</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Использование функции Add(x)]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=108650#p108650</link>
			<description><![CDATA[<p>teadrinker.<br />Привет. Ваш вариант не работает.<br />Примерно должно так выглядеть:</p><div class="codebox"><pre><code>
Vibor := {Create: &quot;//a[@data-id=&#039;94F13529BB3C3800D2A0AAED09EC277841279D79&#039;]&quot;}

Add(NAME)
{

   driver.findElementByXPath(Vibor[NAME]).click
}

Add(&quot;Create&quot;)

</code></pre></div><p>При этом после </p><div class="codebox"><pre><code>driver.findElementByXPath(Vibor</code></pre></div><p> нужна точка.<br />Вот такой код в итоге нужно получить на первом выходе. Но на точку выдает ошибку, пробовал в {.} скобки её внести, но так же выдает ошибку.<br /></p><div class="codebox"><pre><code>
driver.findElementByXPath(Vibor.[NAME]).click
</code></pre></div><p>После этого код видит что есть Vibor.[NAME] он идет в словарь, находит элемент и подставляет, и в итоге получается финальная строчка.<br /></p><div class="codebox"><pre><code>
driver.findElementByXPath(&quot;//a[@data-id=&#039;94F13529BB3C3800D2A0AAED09EC277841279D79&#039;]&quot;)
</code></pre></div><p>Посмотрел инструкцию, видимо это она <a href="https://autohotkey.com/docs/Objects.htm#Default_Base_Object">https://autohotkey.com/docs/Objects.htm … ase_Object</a><br />Если честно не очень понял, там какие то сложные примерны очень.<br />У меня цель понять 2 вещи:<br />1. Как сделать функцию где нет входящего параметра. Где просто при её вызове она выдает какой то результат.<br />2. Как сделать функцию где будет 1 или 2 входящих параметра, где в итоге этот входящий параметр подставится в определенное место, и на выходе я получу целую строку.</p><p>Вот подобных примеров я не нашел. Как я видел. там примеры только с входящими данными. Или я не верно смотрю ?</p>]]></description>
			<author><![CDATA[null@example.com (Autosql)]]></author>
			<pubDate>Fri, 28 Oct 2016 08:17:00 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=108650#p108650</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Использование функции Add(x)]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=108636#p108636</link>
			<description><![CDATA[<div class="codebox"><pre><code>Add(&quot;Create&quot;)

Add(NAME)
{
   Vibor := {Create: &quot;//a[@data-id=&#039;94F13529BB3C3800D2A0AAED09EC277841279D79&#039;]&quot;}
   driver.findElementByXPath(Vibor[NAME]).click
}</code></pre></div><p>Обратите внимание на кавычки и скобки.<br /></p><div class="quotebox"><cite>Autosql пишет:</cite><blockquote><p>Что-то я не понимаю как это работает.</p></blockquote></div><p>Вам нужно ознакомиться со статьёй «Переменные и выражения». <a href="http://script-coding.com/AutoHotkey/Variables.1.0.46.07.html">Вот</a> на русском, но лучше на <a href="https://autohotkey.com/docs/Variables.htm">английском</a>, русский вариант устарел.</p>]]></description>
			<author><![CDATA[null@example.com (teadrinker)]]></author>
			<pubDate>Thu, 27 Oct 2016 14:18:24 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=108636#p108636</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Использование функции Add(x)]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=108625#p108625</link>
			<description><![CDATA[<p>Что-то я не понимаю как это работает.</p><p>Так же у меня появилась задача.</p><div class="codebox"><pre><code>
Snils()
{
	тут какие то действия по подсчету снилса.
 itog := %raschet%
return itog
}
</code></pre></div><p>В итоге хочу получить: 12341241234</p><p>Я верно делаю ?<br />Вызов Send % Snils()</p>]]></description>
			<author><![CDATA[null@example.com (Autosql)]]></author>
			<pubDate>Thu, 27 Oct 2016 08:16:26 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=108625#p108625</guid>
		</item>
		<item>
			<title><![CDATA[AHK: Использование функции Add(x)]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=108624#p108624</link>
			<description><![CDATA[<p>Добрый день.<br />Пробую сделать функцию, посмотрел Help, вроде много описано, но так и не понял всей сути.</p><p>Есть такой код.<br /></p><div class="codebox"><pre><code>
Vibor := {Create: &quot;//a[@data-id=&#039;94F13529BB3C3800D2A0AAED09EC277841279D79&#039;]&quot;}

driver.findElementByXPath(Vibor.Create).click
</code></pre></div><p>Хочу под него сделать функцию, чтобы вызов был проще.<br />Например вызов такого вида:<br /></p><div class="codebox"><pre><code>
Add(Create)
Add(***)
</code></pre></div><p>Как я понял, как раз именно так будет вызов идти.</p><p>Пробую сделать функцию примерно так:<br /></p><div class="codebox"><pre><code>
Add(NAME)
{
	 return driver.findElementByXPath(Vibor.NAME).click
}
</code></pre></div><p>В итоге хочу получить строку такого вида:<br /></p><div class="codebox"><pre><code>
Вызов.
Add(Create)
</code></pre></div><p>После выполнения как я понимаю должна получится такая строка:<br /></p><div class="codebox"><pre><code>
driver.findElementByXPath(Vibor.Create).click
</code></pre></div><p>Где далее он, зайдет в список Vibor найдет переменную Create и уже сделает из неё строку. <br /></p><div class="codebox"><pre><code>
driver.findElementByXPath(&quot;//a[@data-id=&#039;94F13529BB3C3800D2A0AAED09EC277841279D79&#039;]&quot;).click
</code></pre></div><p>Но выполнив этот код, он ничего не возвращает.<br />Я видимо что-то не так делаю, или неверно понимаю функцию ?</p><p>Истоки из данной темы: <a href="http://forum.script-coding.com/viewtopic.php?pid=108571">http://forum.script-coding.com/viewtopic.php?pid=108571</a></p>]]></description>
			<author><![CDATA[null@example.com (Autosql)]]></author>
			<pubDate>Thu, 27 Oct 2016 06:48:00 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=108624#p108624</guid>
		</item>
	</channel>
</rss>
