<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Серый форум &mdash; AHK: Проблемы с циклом Loop]]></title>
	<link rel="self" href="http://forum.script-coding.com/extern.php?action=feed&amp;tid=12385&amp;type=atom" />
	<updated>2017-02-05T05:32:11Z</updated>
	<generator>PunBB</generator>
	<id>http://forum.script-coding.com/viewtopic.php?id=12385</id>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Проблемы с циклом Loop]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=111906#p111906" />
			<content type="html"><![CDATA[<p><strong>slavafedora</strong>, Один раз отработал скрипт. Мне уже помощь не нужна, я нашел причину в своем UDF и просто перенес ту часть скрипта в конец кода.</p>]]></content>
			<author>
				<name><![CDATA[belyankin12]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=34408</uri>
			</author>
			<updated>2017-02-05T05:32:11Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=111906#p111906</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Проблемы с циклом Loop]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=111905#p111905" />
			<content type="html"><![CDATA[<p>Очень просто.<br /></p><div class="codebox"><pre><code>
#NoEnv
#SingleInstance force
SetTimer, autobind, on

autobind:
{
    Fileread, ans_mac, %afkmode%
    log := {str:&quot;&quot;,find:0,num:0}    ,    log.str := []
    FileEncoding, CP0
    Loop, read, %path_log%
    log.str.Insert(A_LoopReadLine)    ,log.num := A_Index
	
    loop 5
    if RegExMatch(     log.str[log.num + 1 - A_Index]
        ,&quot;\[(.*)\]  SMS:(.*). Отправитель: (.*)_(.*)\[(.*)\]&quot;
        , end_str) and (log.find:=log.num + 1 - A_Index)
            break
    sleep 500
	
	if (end_str5 != &quot;&quot;) and  (ans_mac = &quot;On&quot;) {
	    sendinput {f6}/t %end_str5% Я сейчас АФК, за меня ответил тебе биндер{enter}
		sleep 300
		showDialog(&quot;0&quot;, &quot;{FF8300}Пропущенное сообщение&quot;, &quot;{FFFAFA}От кого: {9ACD32}&quot; . end_str3 . &quot;_&quot; . end_str4 . &quot;[&quot; . end_str5 . &quot;]`n{FFFAFA}Текст: {33CCFF}&quot; . end_str2 . &quot;&quot;, &quot;OK&quot;)
		sleep 1100
	}
		
}
return

#include %A_ScriptDir%\plugins\SAMP-UDF-Developer.ahk
</code></pre></div><p>Loop тут вовсе не нужен. Попробуй так, потом отпишись.</p>]]></content>
			<author>
				<name><![CDATA[slavafedora]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=34221</uri>
			</author>
			<updated>2017-02-05T04:02:13Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=111905#p111905</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Проблемы с циклом Loop]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=111729#p111729" />
			<content type="html"><![CDATA[<p>Вот оно что... И вправду, подключаю к простому скрипту сначала инклудом udf а потом уже скрипт с loop и скрипт не работает... Теперь дело за малым, найти бесконечный цикл. Спасибо всем.</p>]]></content>
			<author>
				<name><![CDATA[belyankin12]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=34408</uri>
			</author>
			<updated>2017-01-31T19:46:33Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=111729#p111729</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Проблемы с циклом Loop]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=111727#p111727" />
			<content type="html"><![CDATA[<p>Вероятно один из #include содержит бесконечный цикл. Пока он не закончится, не подключится следующий #include. А горячая клавиша умеет прерывать текущий &quot;поток&quot;.</p><div class="quotebox"><cite>semechka пишет:</cite><blockquote><p>Несмотря на то, что AutoHotkey фактически не использует множественные потоки, она моделирует это поведение: если начать второй поток - например, нажимая очередную горячую клавишу, пока предыдущая еще работает - текущий поток будет прерван (временно остановлен), что позволит новому потоку стать текущим. Если начать третий поток, когда второй еще работает, то и второй и первый потоки окажутся в неактивном состоянии, и так далее.</p></blockquote></div>]]></content>
			<author>
				<name><![CDATA[ypppu]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=5974</uri>
			</author>
			<updated>2017-01-31T19:41:24Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=111727#p111727</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Проблемы с циклом Loop]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=111726#p111726" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>ypppu пишет:</cite><blockquote><p>Где include-файл?</p></blockquote></div><p>Это секрет посвящённых. <br />Так как я к ним не принадлежу, могу предположить.</p><br /><div class="codebox"><pre><code>

#UseHook
#NoEnv
#SingleInstance force

Loop 
{
    Fileread, ans_mac, %afkmode%
    log := {str:&quot;&quot;,find:0,num:0}    ,    log.str := []
    FileEncoding, CP0
    Loop, read, %path_log%
    log.str.Insert(A_LoopReadLine)    ,log.num := A_Index
	
    loop 5
    if RegExMatch(     log.str[log.num + 1 - A_Index]
        ,&quot;\[(.*)\]  SMS:(.*). Отправитель: (.*)_(.*)\[(.*)\]&quot;
        , end_str) and (log.find:=log.num + 1 - A_Index)
            break
    sleep 500
	
	if (end_str5 != &quot;&quot;) and  (ans_mac = &quot;On&quot;) {
	    sendinput {f6}/t %end_str5% Я сейчас АФК, за меня ответил тебе биндер{enter}
		sleep 300
		showDialog(&quot;0&quot;, &quot;{FF8300}Пропущенное сообщение&quot;, &quot;{FFFAFA}От кого: {9ACD32}&quot; . end_str3 . &quot;_&quot; . end_str4 . &quot;[&quot; . end_str5 . &quot;]`n{FFFAFA}Текст: {33CCFF}&quot; . end_str2 . &quot;&quot;, &quot;OK&quot;)
		sleep 1100
	}
		
}
return

#include %A_ScriptDir%\plugins\SAMP-UDF-Developer.ahk
</code></pre></div>]]></content>
			<author>
				<name><![CDATA[serzh82saratov]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=27879</uri>
			</author>
			<updated>2017-01-31T19:33:51Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=111726#p111726</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Проблемы с циклом Loop]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=111725#p111725" />
			<content type="html"><![CDATA[<p>Выложу основной скрипт в виде файла, а не кода, потому что тут больше тысячи строчек, раз вам не хватает только части основного скрипта. Инклуд в первом посте, именно его я подключаю. Должно быть следующее: подключенный через include скрипт должен постоянно читать текстовый файл на наличие определенного шаблона (RegExMatch). Как только он находит строку по шаблону, он проверяет параметр, что задан в другом текстовом файле. Если параметр = 1, то скрипт выполняет действие, если параметр отличный от 1, то скрипт ничего не делает. И опять повторюсь. Что все работает абсолютно, если с кода, что в первом посте убрать Loop и поставить клавишу активации. Т.е. в ручном режиме все работает, а в автоматическом не хочет.</p>]]></content>
			<author>
				<name><![CDATA[belyankin12]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=34408</uri>
			</author>
			<updated>2017-01-31T19:18:11Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=111725#p111725</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Проблемы с циклом Loop]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=111723#p111723" />
			<content type="html"><![CDATA[<p><strong>belyankin12</strong>, всё равно не пойму, что Вы хотите. Я не знаю что за предыдущая версия скрипта, давайте ещё более простой пример. Где основной скрипт? Где include-файл? Что именно должно быть, и как получается на самом деле?</p>]]></content>
			<author>
				<name><![CDATA[ypppu]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=5974</uri>
			</author>
			<updated>2017-01-31T19:05:41Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=111723#p111723</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Проблемы с циклом Loop]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=111721#p111721" />
			<content type="html"><![CDATA[<p>Не понимаю о каких трудностях вы говорите. Этот же код работал на ура в предыдущей версии скрипта. Сменив UDF я получил моментальное отключение всех инклудов, которые работают в цикле loop. Инклуды, что активируются клавишей, работают как раньше. Только loop грешит. Вот сейчас сделал простейшие коды: основной скрипт записывает в текстовый файл цифру один, а если там цифра один, то удаляет текстовый файл и записывает цифру ноль. Второй скрипт инклудом подключен к первому и если в файле цифра один, он мне флудит командой msgbox. Все работает. Подключаю UDF - тоже работает. Почему код из первого поста не работает, не понятно...</p><p>Вот первый файл:<br /></p><div class="codebox"><pre><code>
SetWorkingDir %A_ScriptDir%
#Include 2.ahk
#include D:\Обитель Белки\AHK\Биндер\Plugins\SAMP-UDF-Developer.ahk

!1::
msgbox, Work
return

!2::
FileRead, var, 2.txt
if (var = &quot;qqq=1&quot;) {
FileDelete, 2.txt
FileAppend, qqq=0, 2.txt
} else {
FileDelete, 2.txt
FileAppend, qqq=1, 2.txt
}
return
</code></pre></div><p>Вот второй<br /></p><div class="codebox"><pre><code>
#NoEnv  ; Recommended for performance and compatibility with future AutoHotkey releases.
SendMode Input  ; Recommended for new scripts due to its superior speed and reliability.
SetWorkingDir %A_ScriptDir%  ; Ensures a consistent starting directory.

Loop 
{
    log := {str:&quot;&quot;,find:0,num:0}    ,    log.str := []
    FileEncoding, CP0
    Loop, read, 2.txt
    log.str.Insert(A_LoopReadLine)    ,log.num := A_Index
	
    loop 5
    if RegExMatch(     log.str[log.num + 1 - A_Index]
        ,&quot;qqq=(.*)&quot;
        , var) and (log.find:=log.num + 1 - A_Index)
            break
    sleep 500

if (var1 = 1) {
msgbox, %var%
sleep 1100
}
}
</code></pre></div><p>Как я и предполагал, проблема не в UDF. Так в чем же тогда? Ещё раз повторюсь, что приведенный в первом посте код работает прекрасно через клавишу активации. Примерно так оно выглядит:<br /></p><div class="codebox"><pre><code>f2::
#include file
return</code></pre></div><p>Но только стоит убрать клавишу активации, а в дополнительном скрипте поставить Loop как все перестает работать...</p>]]></content>
			<author>
				<name><![CDATA[belyankin12]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=34408</uri>
			</author>
			<updated>2017-01-31T18:48:17Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=111721#p111721</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Проблемы с циклом Loop]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=111712#p111712" />
			<content type="html"><![CDATA[<p>Да, слово &quot;игра&quot;. А ещё&nbsp; &quot;с момента смены UDF&quot; и GTA:SA:MP.<br />То есть тема обращена к игровой аудитории. Кто эту игру не знает, тому не понятно о чём речь.</p><p>Если трудности с командой <em>Include</em>, почитайте справку, потренируйтесь на простом примере. Если и после этого не понятно, тогда выложите код с этим простым примером, плюс содержимое include-файла.</p>]]></content>
			<author>
				<name><![CDATA[ypppu]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=5974</uri>
			</author>
			<updated>2017-01-31T17:09:40Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=111712#p111712</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Проблемы с циклом Loop]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=111700#p111700" />
			<content type="html"><![CDATA[<p>Модератор, что перенес мою тему. Вопрос: если в теме используется слово &quot;игра&quot;, то это уже сразу нужно создавать в теме для игры? Или может если я указываю проблему не конкретно игры, а чистого кода. Т.е. я мог бы даже не использовать слово &quot;Игра&quot;, все равно бы выразил суть проблемы...</p>]]></content>
			<author>
				<name><![CDATA[belyankin12]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=34408</uri>
			</author>
			<updated>2017-01-31T15:48:32Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=111700#p111700</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Проблемы с циклом Loop]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=111698#p111698" />
			<content type="html"><![CDATA[<p>Тогда у меня будет проблем много, у меня не один такой скрипт, что я подключаю. Вот и формирую все по папочкам. А в этом скрипте не выйдет прописать инклуд в корень, потому что за основу берется A_ScriptDir не этого скрипта, а основного.</p>]]></content>
			<author>
				<name><![CDATA[belyankin12]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=34408</uri>
			</author>
			<updated>2017-01-31T15:41:57Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=111698#p111698</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Проблемы с циклом Loop]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=111697#p111697" />
			<content type="html"><![CDATA[<p>Зачем тебе путь указывать к файлу #include ?<br />Кинь его рядом со своим скриптом и сделай так:<br /></p><div class="codebox"><pre><code>#include SAMP-UDF-Developer.ahk</code></pre></div>]]></content>
			<author>
				<name><![CDATA[slavafedora]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=34221</uri>
			</author>
			<updated>2017-01-31T15:25:27Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=111697#p111697</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[AHK: Проблемы с циклом Loop]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=111696#p111696" />
			<content type="html"><![CDATA[<p>Здравствуйте, у меня есть скрипт-биндер для игры. В него я подключаю через инклуд те скрипты, которые должны постоянно работать. Цикл создаю с помощью Loop. Перестало все работать с момента смены UDF для скрипта, но почему-то мне кажется, что не в нем проблема. Суть такова: через Loop скрипт не выполняется, даже если поставить Loop 10000 например, а если поставить клавишу активации, все идёт. Вот код:<br /></p><div class="codebox"><pre><code>
#UseHook
#NoEnv
#SingleInstance force
#IfWinActive GTA:SA:MP
#include %A_ScriptDir%\plugins\SAMP-UDF-Developer.ahk

Loop 
{
    Fileread, ans_mac, %afkmode%
    log := {str:&quot;&quot;,find:0,num:0}    ,    log.str := []
    FileEncoding, CP0
    Loop, read, %path_log%
    log.str.Insert(A_LoopReadLine)    ,log.num := A_Index
	
    loop 5
    if RegExMatch(     log.str[log.num + 1 - A_Index]
        ,&quot;\[(.*)\]  SMS:(.*). Отправитель: (.*)_(.*)\[(.*)\]&quot;
        , end_str) and (log.find:=log.num + 1 - A_Index)
            break
    sleep 500
	
	if (end_str5 != &quot;&quot;) and  (ans_mac = &quot;On&quot;) {
	    sendinput {f6}/t %end_str5% Я сейчас АФК, за меня ответил тебе биндер{enter}
		sleep 300
		showDialog(&quot;0&quot;, &quot;{FF8300}Пропущенное сообщение&quot;, &quot;{FFFAFA}От кого: {9ACD32}&quot; . end_str3 . &quot;_&quot; . end_str4 . &quot;[&quot; . end_str5 . &quot;]`n{FFFAFA}Текст: {33CCFF}&quot; . end_str2 . &quot;&quot;, &quot;OK&quot;)
		sleep 1100
	}
		
}
return
</code></pre></div><p>Чтобы он работал, я прописываю в коде основного скрипта следующее:<br /></p><div class="codebox"><pre><code>#include %A_ScriptDir%\plugins\AutoSMS.ahk</code></pre></div><p>В чем может быть проблема? Неужели UDF способен погасить Loop каким-то образом? Если понадобится, могу его приложить.</p>]]></content>
			<author>
				<name><![CDATA[belyankin12]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=34408</uri>
			</author>
			<updated>2017-01-31T15:06:21Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=111696#p111696</id>
		</entry>
</feed>
