<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Серый форум &mdash; AHK: Подсчет стоимости по списку]]></title>
		<link>https://forum.script-coding.com/viewtopic.php?id=10155</link>
		<atom:link href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=10155&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «AHK: Подсчет стоимости по списку».]]></description>
		<lastBuildDate>Fri, 28 Nov 2014 16:53:42 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: AHK: Подсчет стоимости по списку]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=88772#p88772</link>
			<description><![CDATA[<p>Malcev<br />Обратите внимание на сообщение 11.<br />Выложенный мной вариант я уже начал тестировать&nbsp; на тот момент.</p><p>teadrinker <br />Ещё раз спасибо! Протестировал предложенные варианты.<br />Первый и третий работают стабильно, даже при попадании лишнего в буфер обмена.<br />В тарой вариант выдает пустую строку.<br />Разбираться почему нет времени.<br />Тем более я не до конца с функцией regexmatch.<br />А я предпочитаю понимать как работает мой скрипт.</p>]]></description>
			<author><![CDATA[null@example.com (ppvladis)]]></author>
			<pubDate>Fri, 28 Nov 2014 16:53:42 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=88772#p88772</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Подсчет стоимости по списку]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=88671#p88671</link>
			<description><![CDATA[<div class="quotebox"><blockquote><p>Malcev<br />Да действительно есть такая проблем.<br />И я с ней столкнулся.<br />Но её легко обойти поставив в начале составные выражения а затем одиночные.</p></blockquote></div><p>А чем не устраивает вариант teadrinkerа в 10 сообщении?</p>]]></description>
			<author><![CDATA[null@example.com (Malcev)]]></author>
			<pubDate>Tue, 25 Nov 2014 13:06:24 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=88671#p88671</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Подсчет стоимости по списку]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=88662#p88662</link>
			<description><![CDATA[<p>YMP большое спасибо!<br />Я там искал но почему то не увидел. И как баран пытался понять гугловский перевод английской версии.<br />ypppu<br />Регулярные выражения (RegEx) - краткий справочник<br />Я читал. Они не содержат описание функции regexmatch.<br />Malcev<br />Да действительно есть такая проблем.<br />И я с ней столкнулся. <br />Но её легко обойти поставив в начале составные выражения а затем одиночные.</p>]]></description>
			<author><![CDATA[null@example.com (ppvladis)]]></author>
			<pubDate>Tue, 25 Nov 2014 10:01:50 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=88662#p88662</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Подсчет стоимости по списку]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=88500#p88500</link>
			<description><![CDATA[<div class="quotebox"><cite>ppvladis пишет:</cite><blockquote><p>Пытался найти описание функции regexmatch, не нашёл!</p></blockquote></div><p><a href="http://www.script-coding.com/AutoHotkey/RegEx.html">Регулярные выражения (RegEx) - краткий справочник</a></p>]]></description>
			<author><![CDATA[null@example.com (ypppu)]]></author>
			<pubDate>Thu, 20 Nov 2014 16:06:13 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=88500#p88500</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Подсчет стоимости по списку]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=88491#p88491</link>
			<description><![CDATA[<p>Плохой вариант заменять:<br /></p><div class="codebox"><pre><code>StringReplace, spisok, spisok, сыр, 300, all</code></pre></div><p>Так как потом если будет сырный салат, то выйдет заминка.</p>]]></description>
			<author><![CDATA[null@example.com (Malcev)]]></author>
			<pubDate>Thu, 20 Nov 2014 12:31:59 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=88491#p88491</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Подсчет стоимости по списку]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=88473#p88473</link>
			<description><![CDATA[<p><a href="http://www.script-coding.com/AutoHotkey/RegExMatch.html">http://www.script-coding.com/AutoHotkey/RegExMatch.html</a></p>]]></description>
			<author><![CDATA[null@example.com (YMP)]]></author>
			<pubDate>Wed, 19 Nov 2014 18:56:21 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=88473#p88473</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Подсчет стоимости по списку]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=88472#p88472</link>
			<description><![CDATA[<p>Протестировал свой вариант, работает без сбоев.<br /></p><div class="codebox"><pre><code>
3::
MouseClick, left,  619,  385, , ,D ;Верхний левый угол списка
Sleep, 100
MouseMove,  879,  610
Sleep, 100
MouseClick, left,  879,  610, , ,U ;Нижний правый угол списка
Sleep, 100
Send, ^{vk43}       ; Ctrl-C, копирование.
Sleep, 100
StringReplace, spisok, clipboard, %A_Space%, _, all ;замена пробелов подчеркиванием
StringReplace, spisok, spisok, кормовая_свёкла, 3.95, all
StringReplace, spisok, spisok, цветная_капуста, 3.69, all
StringReplace, spisok, spisok, Козье_молоко, 100, all
StringReplace, spisok, spisok, зерно, 0.5, all
StringReplace, spisok, spisok, кукуруза, 1.1, all
StringReplace, spisok, spisok, клевер, 1.34, all
StringReplace, spisok, spisok, рапс, 2.75, all
StringReplace, spisok, spisok, ботва, 8.05, all
StringReplace, spisok, spisok, яйца, 15, all
StringReplace, spisok, spisok, молоко, 80, all
StringReplace, spisok, spisok, подсолнух, 17.8, all
StringReplace, spisok, spisok, василёк, 18.5, all
StringReplace, spisok, spisok, морковь, 0.16, all
StringReplace, spisok, spisok, огурцы, 0.52, all
StringReplace, spisok, spisok, редиска, 1.02, all
StringReplace, spisok, spisok, клубника, 1.44, all
StringReplace, spisok, spisok, помидоры, 1.96, all
StringReplace, spisok, spisok, лук, 2.28, all
StringReplace, spisok, spisok, шпинат, 3.8, all
StringReplace, spisok, spisok, шерсть, 49, all
StringReplace, spisok, spisok, мёд, 70, all
StringReplace, spisok, spisok, майонез, 40, all
StringReplace, spisok, spisok, сыр, 300, all
StringReplace, spisok, spisok, рыбка, 250, all
StringReplace, spisok, spisok, картофель, 4.38, all
StringReplace, spisok, spisok, спаржа, 12.4, all
StringReplace, spisok, spisok, кабачки, 3.3, all
StringReplace, spisok, spisok, Герань, 10.12, all
StringReplace, spisok, spisok, Маргаритка, 3.72, all
StringReplace, spisok, spisok, Йогурт, 300, all
StringReplace, spisok, spisok, Кетчуп, 290, all
pos = 1
price := &quot;&quot;
;msgbox % spisok
while pos := regexmatch(spisok, &quot;([0-9]*)x_([0-9]*.[0-9]*)&quot;, found, pos+StrLen(found))
{
   price += found1*found2
}
MouseClick, left,  691,  648, , , D ;
Sleep, 100
MouseMove,  814,  637
Sleep, 100
MouseClick, left,  814,  637, , , U
Sleep, 100
Send, ^{vk43}       ; Ctrl-C, копирование.
Sleep, 100
StringReplace, clipboard, clipboard, ., , all
StringReplace, clipboard, clipboard, &quot;,&quot;, ., all
regexmatch(clipboard, &quot;(^[0-9]*)&quot;, ceha)
otvet = net
x = 893
if (ceha &gt; price)
{
otvet = da 
x := 619
}
MouseClick, left,  %x%,  703
;msgbox % spisok &quot;`n&quot; price &quot;`n&quot; ceha &quot;`n&quot; otvet &quot; &quot; x
</code></pre></div><p>Вышло несколько громоздка.<br />Вместо ([0-9]) пытался ставить (\d), почему то не срабатывало.<br />В переменную записывалось пустое значение.<br />Пытался найти описание функции regexmatch, не нашёл!<br />Если знаете где есть дайте пожалуйста ссылку.<br />Еще раз спасибо всем за помощь!</p>]]></description>
			<author><![CDATA[null@example.com (ppvladis)]]></author>
			<pubDate>Wed, 19 Nov 2014 18:51:57 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=88472#p88472</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Подсчет стоимости по списку]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=88415#p88415</link>
			<description><![CDATA[<p>Teadrinker большое спасибо!<br />Попробую ваши варианты и отпишусь.<br />Я нашел вариант вариант без сбоев, пока тестирую.<br />Правда он более громоздкий. <br />Протестирую выложу и его, может кому пригодится.</p>]]></description>
			<author><![CDATA[null@example.com (ppvladis)]]></author>
			<pubDate>Mon, 17 Nov 2014 08:02:33 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=88415#p88415</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Подсчет стоимости по списку]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=88409#p88409</link>
			<description><![CDATA[<div class="quotebox"><cite>Malcev пишет:</cite><blockquote><p>&quot;([^\n]*)x_([^\n]*)&quot;</p></blockquote></div><p>Не учтён вид переноса строк в буфере обмена, правильно так: &quot;([^\n\r]*)x_([^\n\r]*)&quot;</p><div class="codebox"><pre><code>шпинат = 1
зерно = 2
цветная_капуста = 3

clipboard =
( 
135x шпинат
30x зерно
126x цветная капуста
)
StringReplace, clipboard, clipboard, %A_Space%, _, all
pos = 1
price := &quot;&quot;
while pos := regexmatch(clipboard, &quot;([^\n\r]*)x_([^\n\r]*)&quot;, found, pos+StrLen(found))
   price += found1*%found2%
msgbox % price</code></pre></div><p>А проще, да и надёжнее так:<br /></p><div class="codebox"><pre><code>шпинат = 1
зерно = 2
цветная_капуста = 3

clipboard =
( 
135x шпинат
30x зерно
126x цветная капуста
)

StringReplace, clipboard, clipboard, %A_Space%, _, all

price := 0
Loop, parse, Clipboard, `n, `r
   RegExMatch(A_LoopField, &quot;(\d+)._(.*)&quot;, found)
   , price += found1*%found2%

msgbox % price</code></pre></div><p>Здесь в паттерне &quot;икс&quot; заменён на точку (любой символ), чтобы не возникло путаницы между &quot;икс&quot; и &quot;х&quot; в русской раскладке.<br /></p><div class="quotebox"><cite>ppvladis пишет:</cite><blockquote><p>Согласно списку, скопированному в буфер обмена</p></blockquote></div><p>Вообще-то такой подход чреват ошибками. В буфер обмена ведь случайно может попасть лишний знак, например пробел. Код ошибки не выдаст, а результат будет неверным. Несколько более надёжным будет такой вариант:</p><div class="codebox"><pre><code>шпинат = 1
зерно = 2
цветная_капуста = 3

clipboard =
( 
135x шпинат
30x зерно
126x цветная капуста
)

price := 0
Loop, parse, Clipboard, `n, `r
{
   RegExMatch(A_LoopField, &quot;(\d+)\S\s+(.*\S)\s*&quot;, found)
   found2 := RegExReplace(found2, &quot;\s+&quot;, &quot;_&quot;)
   price += found1 * %found2%
}

msgbox % price</code></pre></div><p>Он, по-крайней мере, от лишних пробелов спасёт.</p>]]></description>
			<author><![CDATA[null@example.com (teadrinker)]]></author>
			<pubDate>Sun, 16 Nov 2014 21:37:10 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=88409#p88409</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Подсчет стоимости по списку]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=88400#p88400</link>
			<description><![CDATA[<p>Скачал заработало!<br />Переписал скрипт под себя и столкнулся с новой проблемой.<br /></p><div class="codebox"><pre><code>3::
зерно = 0.5
кукуруза = 1.1
клевер = 1.34
рапс = 2.75 ;
кормовая_свёкла = 3.95 ;
ботва = 8.05 
яйца = 15
молоко = 80
подсолнух = 17.8
василёк = 18.5
морковь = 0.16 ;
огурцы = 0.52 ;
редиска = 1.02
клубника = 1.44
помидоры = 1.96 
лук = 2.28
шпинат = 3.8 
Цветная_капуста = 3.69
шерсть = 49 
мед = 70
майонез = 40
сыр = 300
Рыбка = 250
картофель = 4.38
спаржа = 12.4 
Кабачки = 3.3
Герань = 10.12
Маргаритка = 3.72
Козе_молоко = 100
Йогурт = 300
Кетчуп = 290

StringReplace, clipboard, clipboard, %A_Space%, _, all
pos = 1
price := &quot;&quot;
msgbox % clipboard
while pos := regexmatch(clipboard, &quot;([^\n]*)x_([^\n]*)&quot;, found, pos+StrLen(found))
   price += found1*%found2%
msgbox % price
Return</code></pre></div><p>При длине списка больше одной строки. Выскакивает ошибка ( the following variable name contains an illegal cyfracter )<br />указывающая на переменную второй строки списка.<br />Причем если при копировании того же списка, пропустив первую строку, ошибка уже указывает на третью переменную.</p>]]></description>
			<author><![CDATA[null@example.com (ppvladis)]]></author>
			<pubDate>Sun, 16 Nov 2014 17:05:29 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=88400#p88400</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Подсчет стоимости по списку]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=88394#p88394</link>
			<description><![CDATA[<p>Скачайте актуальную версию.<br />Ссылка выше.</p>]]></description>
			<author><![CDATA[null@example.com (Malcev)]]></author>
			<pubDate>Sun, 16 Nov 2014 13:31:48 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=88394#p88394</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Подсчет стоимости по списку]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=88393#p88393</link>
			<description><![CDATA[<p>Версия 1,0,47,06</p>]]></description>
			<author><![CDATA[null@example.com (ppvladis)]]></author>
			<pubDate>Sun, 16 Nov 2014 13:23:52 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=88393#p88393</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Подсчет стоимости по списку]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=88392#p88392</link>
			<description><![CDATA[<p>А версия autohotkey последняя?<br /><a href="http://ahkscript.org/">http://ahkscript.org/</a></p>]]></description>
			<author><![CDATA[null@example.com (Malcev)]]></author>
			<pubDate>Sun, 16 Nov 2014 12:47:01 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=88392#p88392</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Подсчет стоимости по списку]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=88391#p88391</link>
			<description><![CDATA[<p>Malcev спасибо, но в строке<br /></p><div class="codebox"><pre><code>while pos := regexmatch(clipboard, &quot;([^\n]*)x_([^\n]*)&quot;, found, pos+StrLen(found))
</code></pre></div><p>выдает ошибку и я не как не пойму в чем она!</p>]]></description>
			<author><![CDATA[null@example.com (ppvladis)]]></author>
			<pubDate>Sun, 16 Nov 2014 12:05:42 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=88391#p88391</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Подсчет стоимости по списку]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=88381#p88381</link>
			<description><![CDATA[<p>Например так:<br /></p><div class="codebox"><pre><code>шпинат = 1
зерно = 2
цветная_капуста = 3

clipboard =
( 
135x шпинат
30x зерно
126x цветная капуста
)
StringReplace, clipboard, clipboard, %A_Space%, _, all
pos = 1
price := &quot;&quot;
while pos := regexmatch(clipboard, &quot;([^\n]*)x_([^\n]*)&quot;, found, pos+StrLen(found))
   price += found1*%found2%
msgbox % price</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (Malcev)]]></author>
			<pubDate>Sun, 16 Nov 2014 03:21:01 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=88381#p88381</guid>
		</item>
	</channel>
</rss>
