<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Серый форум &mdash; AHK: Позиция в While]]></title>
	<link rel="self" href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=16893&amp;type=atom" />
	<updated>2022-01-20T01:25:31Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.script-coding.com/viewtopic.php?id=16893</id>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Позиция в While]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=151687#p151687" />
			<content type="html"><![CDATA[<p>Так вы же во вложенном цикле изменяете переменную match1, по которой идёт поиск (укорачиваете). Советую использовать более внятные названия для переменных, иначе даже сами не сможете разобраться, где и что меняется.</p>]]></content>
			<author>
				<name><![CDATA[teadrinker]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=24515</uri>
			</author>
			<updated>2022-01-20T01:25:31Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=151687#p151687</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Позиция в While]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=151686#p151686" />
			<content type="html"><![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>]]></content>
			<author>
				<name><![CDATA[peterverhovensky]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=41360</uri>
			</author>
			<updated>2022-01-20T00:48:42Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=151686#p151686</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Позиция в While]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=151685#p151685" />
			<content type="html"><![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>]]></content>
			<author>
				<name><![CDATA[teadrinker]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=24515</uri>
			</author>
			<updated>2022-01-19T11:42:25Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=151685#p151685</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[AHK: Позиция в While]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=151684#p151684" />
			<content type="html"><![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>]]></content>
			<author>
				<name><![CDATA[peterverhovensky]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=41360</uri>
			</author>
			<updated>2022-01-19T09:51:12Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=151684#p151684</id>
		</entry>
</feed>
