<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Серый форум &mdash; AHK: Позиция в While]]></title>
		<link>https://forum.script-coding.com/viewtopic.php?id=16893</link>
		<atom:link href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=16893&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «AHK: Позиция в While».]]></description>
		<lastBuildDate>Thu, 20 Jan 2022 01:25:31 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: AHK: Позиция в While]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=151687#p151687</link>
			<description><![CDATA[<p>Так вы же во вложенном цикле изменяете переменную match1, по которой идёт поиск (укорачиваете). Советую использовать более внятные названия для переменных, иначе даже сами не сможете разобраться, где и что меняется.</p>]]></description>
			<author><![CDATA[null@example.com (teadrinker)]]></author>
			<pubDate>Thu, 20 Jan 2022 01:25:31 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=151687#p151687</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Позиция в While]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=151686#p151686</link>
			<description><![CDATA[<p>А если в формате &quot;While — с вложенным While&quot;? У меня первый код следующий результат показывает:<br /></p><div class="codebox"><pre><code>&lt;relatives list=&quot;true&quot;&gt;
|id: -462658649|type: sibling|name: Наталья Маслова
&lt;relative&gt;
&lt;id&gt;-697067159&lt;/id&gt;
&lt;type&gt;sibling&lt;/type&gt;
&lt;name&gt;Оксана Антонова&lt;/name&gt;
&lt;/relative&gt;
|id: -783504179|type: child|name: Данил
&lt;relative&gt;
&lt;id&gt;-841638376&lt;/id&gt;
&lt;type&gt;child&lt;/type&gt;
&lt;name&gt;Максим&lt;/name&gt;
&lt;/relative&gt;
&lt;/relatives&gt;</code></pre></div><p>То есть, &quot;&lt;relative&gt;.*?&lt;/relative&gt;&quot; через один — пропущены без обработки, тогда как все они должны иметь примерно следующий вид:<br /></p><div class="codebox"><pre><code>|id: -462658649|type: sibling|name: Наталья Маслова</code></pre></div><p>Поэтому предполагаю, что при захвате первой пары тегов — берется позиция неправильно, из-за чего следующая похожая пара тегов пропускается.</p>]]></description>
			<author><![CDATA[null@example.com (peterverhovensky)]]></author>
			<pubDate>Thu, 20 Jan 2022 00:48:42 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=151686#p151686</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Позиция в While]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=151685#p151685</link>
			<description><![CDATA[<p>Вроде всё правильно обрабатывается.<br /></p><div class="codebox"><pre><code>fBody =
(
&lt;user&gt;
&lt;relatives list=&quot;true&quot;&gt;
&lt;relative&gt;
&lt;id&gt;-462658649&lt;/id&gt;
&lt;type&gt;sibling&lt;/type&gt;
&lt;name&gt;Наталья Маслова&lt;/name&gt;
&lt;/relative&gt;
&lt;relative&gt;
&lt;id&gt;-697067159&lt;/id&gt;
&lt;type&gt;sibling&lt;/type&gt;
&lt;name&gt;Оксана Антонова&lt;/name&gt;
&lt;/relative&gt;
&lt;relative&gt;
&lt;id&gt;-783504179&lt;/id&gt;
&lt;type&gt;child&lt;/type&gt;
&lt;name&gt;Данил&lt;/name&gt;
&lt;/relative&gt;
&lt;relative&gt;
&lt;id&gt;-841638376&lt;/id&gt;
&lt;type&gt;child&lt;/type&gt;
&lt;name&gt;Максим&lt;/name&gt;
&lt;/relative&gt;
&lt;/relatives&gt;
&lt;/user&gt;

)

matcdh := &quot;&quot;, Pos := 1
While Pos := RegExMatch(fBody, &quot;s)&lt;relative&gt;(.*?)&lt;/relative&gt;&quot;,matcdh,Pos+StrLen(matcdh))
   MsgBox, % matcdh</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (teadrinker)]]></author>
			<pubDate>Wed, 19 Jan 2022 11:42:25 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=151685#p151685</guid>
		</item>
		<item>
			<title><![CDATA[AHK: Позиция в While]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=151684#p151684</link>
			<description><![CDATA[<p>Добрый день. Как правильно обозначить позицию &quot;Pos&quot;, чтобы обрабатывались все соответствия, идущие подряд? По какой-то причине, содержимое &lt;relative&gt;(.*?)&lt;/relative&gt; — обрабатывается через один раз.</p><div class="codebox"><pre><code>#SingleInstance Force

fBody =
(
&lt;user&gt;
&lt;relatives list=&quot;true&quot;&gt;
&lt;relative&gt;
&lt;id&gt;-462658649&lt;/id&gt;
&lt;type&gt;sibling&lt;/type&gt;
&lt;name&gt;Наталья Маслова&lt;/name&gt;
&lt;/relative&gt;
&lt;relative&gt;
&lt;id&gt;-697067159&lt;/id&gt;
&lt;type&gt;sibling&lt;/type&gt;
&lt;name&gt;Оксана Антонова&lt;/name&gt;
&lt;/relative&gt;
&lt;relative&gt;
&lt;id&gt;-783504179&lt;/id&gt;
&lt;type&gt;child&lt;/type&gt;
&lt;name&gt;Данил&lt;/name&gt;
&lt;/relative&gt;
&lt;relative&gt;
&lt;id&gt;-841638376&lt;/id&gt;
&lt;type&gt;child&lt;/type&gt;
&lt;name&gt;Максим&lt;/name&gt;
&lt;/relative&gt;
&lt;/relatives&gt;
&lt;/user&gt;

)

   match := &quot;&quot;, Pos := 1
   While Pos := RegExMatch(fBody, &quot;s)&lt;user&gt;(.*?)&lt;/user&gt;\R&quot;,match,Pos+StrLen(match))
   {

      matcdh := &quot;&quot;, Pos := 1
      While Pos := RegExMatch(match1, &quot;s)&lt;relative&gt;(.*?)&lt;/relative&gt;&quot;,matcdh,Pos+StrLen(matcdh))
      {
         matcdh1 := RegExReplace(matcdh1, &quot;(\R|&lt;/[^&gt;]*&gt;)&quot;, &quot;&quot;)
         matcdh1 := RegExReplace(matcdh1, &quot;&lt;([^&gt;]*)&gt;&quot;, &quot;|$1: &quot;)
         StringReplace, match1, match1, %matcdh%, %matcdh1%, All
      }

      msgbox % match1
   }</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (peterverhovensky)]]></author>
			<pubDate>Wed, 19 Jan 2022 09:51:12 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=151684#p151684</guid>
		</item>
	</channel>
</rss>
