<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Серый форум &mdash; AHK: Функция Switch]]></title>
		<link>https://forum.script-coding.com/viewtopic.php?id=12714</link>
		<atom:link href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=12714&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «AHK: Функция Switch».]]></description>
		<lastBuildDate>Sat, 03 Jun 2017 20:42:54 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: AHK: Функция Switch]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=116343#p116343</link>
			<description><![CDATA[<p>Пользуйтесь пожалуйста справкой и поиском по форуму и в гугле. Это не просто функционал, который есть по дефолту у подобных площадок, а действительно, очень полезный инструмент. Не могу назвать свои знания хоть сколько-то полноценными, но всё, что мне было нужно, а часто и сверх нужного, как правило, в довольно развёрнутых обсуждениях находилось по поисковому запросу, или на вкладке &quot;Указатель&quot; справки по AHK, а начинать тему нужно разбирая частности, а не фундаментальные принципы, уже истолкованные для множества ситуаций. Это может быть простительно, когда только начинаешь свой забег по &quot;полю с граблями&quot;, но если спустя какое-то время ситуация с Вами, не меняется в пользу получения навыков, то со временем, Вас перестанут воспринимать серьёзно зачислив в список неспособных понимать действительность - &quot;as is&quot;(такой, какая она есть). Сейчас я сюда прихожу просто почитать скопившуюся за многие события мудрость и недавно тоже пребывал в уверенности, что знания об AHK сильно фрагментированны, но это совсем не так. Сложность в освоении любого языка программирования с самого начала, не в том, что есть какие-то сложные понятия лежащие в перспективе познания, а в том, что в самой структуре любой из концепций заложена связь всего и со всем одновременно и почти в каждом случае. Невозможно пытаться объяснить какой-либо принцип и не упереться в понимание того, что он тесно связан с другим, а тот, со следующим и так далее... Именно это задаёт сложность с самого начала, а не когда-то &quot;потом&quot; и именно это же задаёт и описательную способность языка, делая инструменты выходящие из-под рук творца - гибкими, а результат их работы - превосходным.</p><p>У Вас всё получится! Надо только почаще прибегать к поиску самостоятельно. Каждый из пожелавших помочь опишет лишь только конкретную точку зрения того, как он понимает суть вопроса и как Вам уже должно было стать заметным - не всегда относящуюся к вопросу и это скорее вопиющее ограничение, само по себе упирающееся в ограниченность языка, что в свою очередь обманывает кажущейся простотой - &quot;Спросил -&gt; Рассказали&quot;. Когда занимаешься поиском сам, уже не встретишь &quot;барьеров&quot; недопонимания с обратной стороны и всё, что будет найдено - принадлежит Вам!</p>]]></description>
			<author><![CDATA[null@example.com (KusochekDobra)]]></author>
			<pubDate>Sat, 03 Jun 2017 20:42:54 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=116343#p116343</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Функция Switch]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=116336#p116336</link>
			<description><![CDATA[<p><strong>KusochekDobra</strong>, на момент создания темы я был более чем уверен, что эти операторы - часть AHK. Обратное я узнал уже здесь: когда мне начали про яваскрипт рассказывать и прочее. Мои знания в этом языке пока что ниже среднего, а потому мне ещё рано пытаться сочинять велосипеды <img src="//forum.script-coding.com/img/smilies/sad.png" width="15" height="15" />.</p>]]></description>
			<author><![CDATA[null@example.com (belyankin12)]]></author>
			<pubDate>Sat, 03 Jun 2017 18:02:17 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=116336#p116336</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Функция Switch]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=116333#p116333</link>
			<description><![CDATA[<p><strong>belyankin.</strong></p><p>Вначале, имеет смысл подумать над тем, что будет выиграно при использовании &quot;switch/case&quot;.Поправьте пожалуйста, если ошибаюсь, но по сути, входящее значение будет сравниваться со всеми значениями конструкции, пока не получит соответствие с одной из них. На сколько я это помню из C#. То же самое будет и при &quot;if/else&quot; помещённом внутрь цикла. Тогда, при практическом равенстве функциональности этих шаблонов, преследуя лишь цель удобочитаемости и сокращения кода, нужно так же понимать, что вызываемые инструкции в ответ на соответствующие данные всё равно придётся описывать и наличие &quot;switch/case&quot; не упрощает эту задачу.<br />Помещаем цикл проверки входящих данных в функцию и функциями же, описываем вызываемые инструкции, ссылки на их вызовы помещаем в объект, а в массиве описываем все варианты входящих значений, на которые нужно реагировать:<br /></p><div class="codebox"><pre><code>
objMyFunc:={}
objMyFunc.vasya:=Func(&quot;VasyaFunc&quot;)
objMyFunc.petya:=Func(&quot;PetyaFunc&quot;)
objMyFunc.vova:=Func(&quot;VovaFunc&quot;)
objMyFunc.noname:=Func(&quot;NoNameFunc&quot;)

incommingValue_01 := &quot;petya&quot;
incommingValue_02 := &quot;kostya&quot;
Global arr:=[&quot;vasya&quot;,&quot;petya&quot;,&quot;vova&quot;] ; проверяемые значения (case)

objMyFunc[SwitchMyVal(incommingValue_01)].()
objMyFunc[SwitchMyVal(incommingValue_02)].()
objMyFunc[SwitchMyVal(&quot;zamanali_sosedi&quot;)].()
objMyFunc[SwitchMyVal(&quot;vova&quot;)].()

ExitApp
SwitchMyVal(val) {
	Loop,% arr.Length() {
		if (arr[A_Index] == val)
			return arr[A_Index]
	}
	return &quot;noname&quot;
}

VasyaFunc() {
	MsgBox,, Title, Вася
}
PetyaFunc() {
	MsgBox,, Title, Петя
}
VovaFunc() {
	MsgBox,, Title, Вова
}
NoNameFunc() {
	MsgBox,, Title, Нет такого имени
}
</code></pre></div><p>Тогда получится довольно понятный код, разбитый на категории, где обращение к четырём входящим значениям описывается четырьмя строками. Если функции должны принимать параметры:<br /></p><div class="codebox"><pre><code>
objMyFunc:={}
objMyFunc.vasya:=Func(&quot;VasyaFunc&quot;)
objMyFunc.petya:=Func(&quot;PetyaFunc&quot;)
objMyFunc.vova:=Func(&quot;VovaFunc&quot;)
objMyFunc.noname:=Func(&quot;NoNameFunc&quot;)

incommingValue_01 := &quot;petya&quot;
incommingValue_02 := &quot;kostya&quot;
Global arr:=[&quot;vasya&quot;,&quot;petya&quot;,&quot;vova&quot;] ; проверяемые значения (case)


objMyFunc[SwitchMyVal(incommingValue_01)].(&quot; счастлив!&quot;)
objMyFunc[SwitchMyVal(incommingValue_02)].(&quot;. Странные дела творятся...&quot;)
objMyFunc[SwitchMyVal(&quot;zamanali_sosedi&quot;)].(&quot;. УБИТЬ СОСЕДЕЙ!!!&quot;)
objMyFunc[SwitchMyVal(&quot;vova&quot;)].()

ExitApp
SwitchMyVal(val) {
	Loop,% arr.Length() {
		if (arr[A_Index] == val)
			return arr[A_Index]
	}
	return &quot;noname&quot;
}

VasyaFunc(fVal:=&quot;&quot;) {
	MsgBox,, Title, Вася%fVal%
}
PetyaFunc(fVal:=&quot;&quot;) {
	MsgBox,, Title, Петя%fVal%
}
VovaFunc(fVal:=&quot;&quot;) {
	MsgBox,, Title, Вова%fVal%
}
NoNameFunc(fVal:=&quot;&quot;) {
	MsgBox,, Title, Нет такого имени%fVal%
}
</code></pre></div><p>Это немного сложнее чем оформление в блоки &quot;if/else&quot;, внутри которых бы помещалось и описание инструкций, вынесенных в этом примере в рамки функций, но сложно это только на первый взгляд. Всё описание программы можно выполнить построчно не используя циклов и это будет ещё проще, но ведь Вы прибегаете в этой беседе к технологиям, не имеющим реализации в этом языке, а значит намеренно пытаетесь привнести в свою программу сложности, с помощью которых мог бы быть обретён новый способ описания. Это в первую очередь сообщает, что Вы пытаетесь расти над собой, а значит, разговоры про рыбу и прочее, противоречат этому стремлению и вряд ли могут быть уместны.</p>]]></description>
			<author><![CDATA[null@example.com (KusochekDobra)]]></author>
			<pubDate>Sat, 03 Jun 2017 15:42:58 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=116333#p116333</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Функция Switch]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=116323#p116323</link>
			<description><![CDATA[<div class="quotebox"><cite>Indomito пишет:</cite><blockquote><p>Можно реализовать это в АНК причём одной функцией.</p></blockquote></div><p>В общем случае нельзя, оригинальный switch/case - оператор ветвления (позволяет выполнять те или иные блоки кода в зависимости от значения переменной).<br />В AHK каждый блок кода придется оформлять отдельной ф-ией, а в массиве записать их имена.<br />Вот в AHK_H уже можно записать в массив сами блоки кода, но читаемость такого варианта выйдет гораздо хуже if/else.</p>]]></description>
			<author><![CDATA[null@example.com (stealzy)]]></author>
			<pubDate>Sat, 03 Jun 2017 04:22:47 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=116323#p116323</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Функция Switch]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=116322#p116322</link>
			<description><![CDATA[<div class="quotebox"><cite>belyankin12 пишет:</cite><blockquote><p>Прилагаю код, вопрос собственно следующий: это я неправильно где-то синтаксис прописал, или для switch нужно отдельную функцию писать? Если нужно отдельную функцию, можете её мне дать?</p></blockquote></div><p> Код не верен ибо функция <strong>Switch</strong> не реализована в АНК, хотя в <a href="https://msdn.microsoft.com/ru-ru/library/k0t5wee3.aspx">C++ оператор switch есть</a>. Можно реализовать это в АНК причём одной функцией.</p><p><strong>UPD</strong><br /><strong>Malcev</strong> уже дал ответ... я не успел, но мой ответ практически аналогичен.</p><p>P.S. Если хочется повозиться, то код который я написал очень давно, т.е.&nbsp; когда разбирался с АНК, если его поправит то получится в итоге функция Case, надо только понять идею реализации фрагмента кода, и да, он работает в одной игре до сих пор. </p><div class="fancy_spoiler_switcher"><div class="fancy_spoiler_switcher_header" data-lang-open="открыть спойлер" data-lang-close="скрыть спойлер"><strong>+</strong>&nbsp;открыть спойлер</div><div class="fancy_spoiler"><div class="codebox"><pre><code>;---
;Main function to dynamically calculate the speed, braking and turning angle corrector, as well as set the flags for timers speed and braking
;---Beginning of function fnGearSpdBrk
fnGearSpdBrk(vParam0, vSpdBrk) ;The values for vSpdBrk (0 - no matter, 1 - speed of the timer, 2 - braking of the timer, 3 and higher - the other subprogramme)
{
;The constants function fnGearSpdBrk and all the subprogrammes who is calling, they are defined above under subprogramme &quot;lVarGameTHQ&quot;.
;cFnSB_Learn||cFnSB_Speed||cFnSB_Brake||cFnSB_GT||cFnSB_Boost||cFnSB_Sharp||cFnSB_Turn||cFnSB_Above||
;          1            2            3         4            5            6           7            8

global ;All variables in the function will be global, it is necessary to comment to engage the directive &quot;global&quot; - should not be an empty string.
local fSpdBrk, vMComp, sLabel, vRetFn, vRetResult
static arSpdBrk := [&quot;lFnSB_Learn&quot;,&quot;lFnSB_Speed&quot;,&quot;lFnSB_Brake&quot;,&quot;lFnSB_GT&quot;,&quot;lFnSB_Boost&quot;,&quot;lFnSB_Sharp&quot;,&quot;lFnSB_Turn&quot;,&quot;lFnSB_Above&quot;] 
static cErFun := &quot;Error in the function `&quot; fnGearSpdBrk `&quot;. `n&quot; 
static fRetDone := 0, fRetErr := -1 
  
  sLabel := arSpdBrk[vSpdBrk]
  if (!IsLabel(sLabel))
   {
		 msgbox, % vMsgOptionsEr 
							,Saints Row: The Third
              , %cErFun% Dynamic label with name = &quot;%sLabel%&quot; does not exist.`n`n %сErrOfExit%
              ,30
     ExitApp
    }
  ;a  := arSpdBrk[vSpdBrk]
  ;tooltip %a% = %vSpdBrk%
  vRetFn := fRetDone
  gosub, % arSpdBrk[vSpdBrk]
  if (vRetFn = fRetErr)
    {
		 sbLabel := SubStr(sLabel, 2)
     msgbox, % vMsgOptionsEr 
							,Saints Row: The Third
              , %cErFun% Semantic error in the sub-function = &quot;%sbLabel%&quot; `n`n %сErrOfExit%
              ,30
     ExitApp
    }  

return vRetResult
  
;Fast distillation the car
; cFnSB_Boost := 4
lFnSB_Boost:
  if (fKeyUpTimer) 
      {
        vBoostSpeed++
        if (vBoostSpeed&gt;cBoostSpeed)
            {
              fKeyUpTimer:=false
              gosub lGearAddUp              
              vBoostSpeed := 0
              fKeyUpTimer:=true
              return vRetResult:=false
            }
          else
            return vRetResult:=true
      }
     else
      return vRetResult:=true
      
return vRetFn:=fRetErr

;Fast braking the car
; cFnSB_Sharp := 5
lFnSB_Sharp:
  if (fKeyDnTimer)
      {
        vSharpBrake++
        if (vSharpBrake&gt;cSharpBrake)
            {
              fKeyDnTimer:=false
              gosub lGearAddDn             
              vSharpBrake := 0
              fKeyDnTimer:=true
              return vRetResult:=false ;Allow the timer subroutine work - the speed has changed.
            }
          else
            return vRetResult:=true    ;Forbid the timer subroutine work - speed does not change.        
      }
     else
      return vRetResult:=true         ;If fKeyDnTimer:=false flag allow or deny? As long as I think will be correct - forbid.
          
return vRetFn:=fRetErr

;Block of the control gear shifting
; cFnSB_GT    := 3
lFnSB_GT:
  if (!vRShX)
        return
  if (iGear&lt;&gt;iGearTrc)
        gosub lSetTimerOff
      else
        return
  if (iGear=1)
      {
        fnPlaySoundTHQ(iSoundSpeedMin)
        Goto, lFnSB_GT_Exit 
      }
  if (iGear=cMaxGear)
      {
        fnPlaySoundTHQ(iSoundSpeedMax)
        Goto, lFnSB_GT_Exit
      }  
  if (iGear&gt;=iGearTrc)		
        fnPlaySoundTHQ(iSoundSpeedUp)
      else
        fnPlaySoundTHQ(iSoundSpeedDn)
  lFnSB_GT_Exit:            
      iGearTrc:=iGear			 
      gosub lSetTimerOn
  return     

return vRetFn:=fRetErr

;The block checks the flags and the initial values for the correction of the rotation.
lFnSB_Turn:
    ;fUDLR := True
      Send, {%vParam0% Down}
        sleep %td20_Sleep%
      Send, {%vParam0% Up}    
    ;fUDLR := False    
  return 
      
return vRetFn:=fRetErr
      
;Block checking and setting lock timer - do not touch hands. I&#039;m kidding it
; cFnSB_Speed := 1
; cFnSB_Brake := 2
lFnSB_Speed:
lFnSB_Brake:
  if ((vSpdBrk=cFnSB_Speed) || (vSpdBrk=cFnSB_Brake)) 
      {
        if (fScepl || fUDLR)
            fSpdBrk := true
          else
            fSpdBrk := false

        if ((vSpdBrk=cFnSB_Speed) &amp;&amp; (iGear=cMaxGear))
            SetTimer lMoveBrk, off
          else
            SetTimer lMoveBrk, %cTimerBrk%
            
        if ((vSpdBrk=cFnSB_Brake) &amp;&amp; (iGear=1))
            SetTimer lMoveUp, off
          else
            SetTimer lMoveUp, %cTimerSpd%
            
        vGearSpdTimer:=vGearSpd//2
        vGearBrkTimer:=vGearBrk//2        
        
        return vRetResult:=fSpdBrk
      }
return vRetFn:=fRetErr
   
;Common subprogramme is not to be verified
; cFnSB_Learn := 0
lFnSB_Learn:
    vGearSpd := (arGear[iGear]+vGearSpd)//2
    vGearBrk := (arGear[iGear]+vGearBrk)//2
    vGearSpdTimer:=vGearSpd//2
    vGearBrkTimer:=vGearBrk//2
    return       
  return vRetFn:=fRetDone

return vRetFn:=fRetErr
      
;While not using - stopgap
; cFnSB_Above := 6
lFnSB_Above: 
return vRetFn:=fRetErr
}
;---End of function fnGearSpdBrk
;---</code></pre></div></div></div>]]></description>
			<author><![CDATA[null@example.com (Indomito)]]></author>
			<pubDate>Sat, 03 Jun 2017 01:43:00 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=116322#p116322</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Функция Switch]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=116221#p116221</link>
			<description><![CDATA[<div class="quotebox"><cite>teadrinker пишет:</cite><blockquote><p>belyankin12, уверяю вас, код в первом посте просто не может работать с расширением ahk. Никак. Ни с функцией, ни без. Там синтаксис, который ahk не поддерживает.</p></blockquote></div><p>Кто его знает, может как JScript выполняли, или что там вообще. Другой вопрос, что за маньяк это делал, если оно на ahk также:<br /></p><div class="codebox"><pre><code>
global error := &quot;Не пренадлежит [1-3]&quot;

Loop
{
	Random, rand, 1, 5
	MsgBox % switch(rand) &quot;`n&quot; rand
}

switch(rand) {
	static list := {1:&quot;Один&quot;, 2:&quot;Два&quot;, 3:&quot;Три&quot;}
	Return list.haskey(rand) ? list[rand] : error
}
</code></pre></div><div class="quotebox"><cite>belyankin12 пишет:</cite><blockquote><p>А насчёт switch/case, если я все таки найду решение, я вам его предоставлю, вдруг кому полезным будет.</p></blockquote></div><p>Такая примитивная функция, на другом языке, в разделе ahk, маловероятно. </p><p><strong>belyankin12</strong> по поводу рыбы или удочки, согласен с вами, людям далеким от этого, даже русскую справку не одолеть, она всё равно как китайская грамота, первое время только на примерах можно что то понять.</p>]]></description>
			<author><![CDATA[null@example.com (serzh82saratov)]]></author>
			<pubDate>Mon, 29 May 2017 18:56:23 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=116221#p116221</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Функция Switch]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=116210#p116210</link>
			<description><![CDATA[<div class="quotebox"><cite>belyankin12 пишет:</cite><blockquote><p>приведенный в первом посте код рабочий!</p></blockquote></div><p>Правда?<br /></p><div class="quotebox"><cite>belyankin12 пишет:</cite><blockquote><p>Просто чего-то видимо не хватает</p></blockquote></div><p><span class="postimg"><img src="http://i17.beon.ru/14/77/2237714/5/85022705/x_12ade434.jpeg" alt="http://i17.beon.ru/14/77/2237714/5/85022705/x_12ade434.jpeg" /></span><br /></p><div class="quotebox"><blockquote><p>но на это время понадобится</p></blockquote></div><p>Это ты точно подметил <img src="//forum.script-coding.com/img/smilies/wink.png" width="15" height="15" />.</p>]]></description>
			<author><![CDATA[null@example.com (stealzy)]]></author>
			<pubDate>Sun, 28 May 2017 20:18:32 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=116210#p116210</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Функция Switch]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=116209#p116209</link>
			<description><![CDATA[<p><strong>belyankin12</strong>, уверяю вас, код в первом посте просто не может работать с расширением ahk. Никак. Ни с функцией, ни без. Там синтаксис, который ahk не поддерживает.</p>]]></description>
			<author><![CDATA[null@example.com (teadrinker)]]></author>
			<pubDate>Sun, 28 May 2017 20:07:29 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=116209#p116209</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Функция Switch]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=116207#p116207</link>
			<description><![CDATA[<p><strong>stealzy</strong>, ещё раз повторю. Я лично видел как этот скрипт работал у другого в файле с расширением .ahk. Я не говорю что это именно те операторы, может быть это просто функция, а эти аргументы были названы так чисто случайно. Но приведенный в первом посте код <strong>рабочий</strong>! Просто чего-то видимо не хватает скрипту, я попытаюсь узнать чего у того парня, но на это время понадобится.</p>]]></description>
			<author><![CDATA[null@example.com (belyankin12)]]></author>
			<pubDate>Sun, 28 May 2017 20:00:15 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=116207#p116207</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Функция Switch]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=116206#p116206</link>
			<description><![CDATA[<p><strong>belyankin12</strong>, еще раз повторю для слоупоков: в AutoHotkey оператора switch/case <strong>нет</strong>. Просто нет.</p>]]></description>
			<author><![CDATA[null@example.com (stealzy)]]></author>
			<pubDate>Sun, 28 May 2017 19:57:40 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=116206#p116206</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Функция Switch]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=116205#p116205</link>
			<description><![CDATA[<p><strong>ypppu</strong>, вы полностью правы, нельзя стать великим программистом, не обучаясь этому основательно. Но я ведь и не претендую на это звание, я учусь на примерах других простеньким вещам, которые зачастую раскрываются слишком глубоко в разных справочниках (например все та же терминология). Человек с опытом способен все объяснить гораздо проще, я думаю никто спорить не будет, что учитель гораздо полезнее книжки.<br />За свою такую &quot;наглость&quot;, что-ли, не могу подобрать правильного слова, я расплачиваюсь тем, что вы можете отказаться мне помочь по какой-либо причине и вы не будете мне помогать даже если я возьмусь за книжки от безысходности).</p>]]></description>
			<author><![CDATA[null@example.com (belyankin12)]]></author>
			<pubDate>Sun, 28 May 2017 19:46:57 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=116205#p116205</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Функция Switch]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=116204#p116204</link>
			<description><![CDATA[<div class="quotebox"><cite>belyankin12 пишет:</cite><blockquote><p>Я прихожу сюда для того, чтобы мне объяснили, рассказали, помогли, а не посылали книжки читать. По вашей логике от этого форума нету толку, можно же пойти книжки почитать.</p></blockquote></div><p>Вообще лучше всего читать книжки (причём сначала предисловие, введение, содержание). Так удастся въехать в общепринятую терминологию. А спрашивать, если по книжке не понятно или нет перевода. Форум полезен тем, что на нём можно найти готовое решение, или спросить, как лучше составить алгоритм, какими командами его реализовать.</p>]]></description>
			<author><![CDATA[null@example.com (ypppu)]]></author>
			<pubDate>Sun, 28 May 2017 19:42:44 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=116204#p116204</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Функция Switch]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=116202#p116202</link>
			<description><![CDATA[<p><strong>stealzy</strong>, боюсь камень, что будет превращать все в золото, я никому не отдам. 	Если бы вы внимательно читали мои посты выше, то поняли бы, что приведенный в первом посте код на AHK работает, просто я какое-то условие не соблюдаю.</p>]]></description>
			<author><![CDATA[null@example.com (belyankin12)]]></author>
			<pubDate>Sun, 28 May 2017 19:35:45 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=116202#p116202</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Функция Switch]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=116201#p116201</link>
			<description><![CDATA[<p>Если скорость не критична, можно еще так записать:<br /></p><div class="codebox"><pre><code>Random, rand, 1, 5
(rand = 1) &amp;&amp; (var := &quot;Один&quot;)
(rand = 2) &amp;&amp; (var := &quot;Два&quot;)
(rand = 3) &amp;&amp; (var := &quot;Три&quot;)
(rand &gt;3) &amp;&amp; (var := &quot;Не пренадлежит [1-3]&quot;)
msgbox % rand &quot;`n&quot; var</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (Malcev)]]></author>
			<pubDate>Sun, 28 May 2017 19:35:15 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=116201#p116201</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Функция Switch]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=116200#p116200</link>
			<description><![CDATA[<p>Удачи в поисках, <img src="//forum.script-coding.com/img/smilies/lol.png" width="15" height="15" />.<br />Ты, это, если философский камень случайно найдешь, дай знать тоже, ок?</p>]]></description>
			<author><![CDATA[null@example.com (stealzy)]]></author>
			<pubDate>Sun, 28 May 2017 19:32:43 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=116200#p116200</guid>
		</item>
	</channel>
</rss>
