<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Серый форум &mdash; AHK: Подсчет стоимости по списку]]></title>
	<link rel="self" href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=10155&amp;type=atom" />
	<updated>2014-11-28T16:53:42Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.script-coding.com/viewtopic.php?id=10155</id>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Подсчет стоимости по списку]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=88772#p88772" />
			<content type="html"><![CDATA[<p>Malcev<br />Обратите внимание на сообщение 11.<br />Выложенный мной вариант я уже начал тестировать&nbsp; на тот момент.</p><p>teadrinker <br />Ещё раз спасибо! Протестировал предложенные варианты.<br />Первый и третий работают стабильно, даже при попадании лишнего в буфер обмена.<br />В тарой вариант выдает пустую строку.<br />Разбираться почему нет времени.<br />Тем более я не до конца с функцией regexmatch.<br />А я предпочитаю понимать как работает мой скрипт.</p>]]></content>
			<author>
				<name><![CDATA[ppvladis]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27537</uri>
			</author>
			<updated>2014-11-28T16:53:42Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=88772#p88772</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Подсчет стоимости по списку]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=88671#p88671" />
			<content type="html"><![CDATA[<div class="quotebox"><blockquote><p>Malcev<br />Да действительно есть такая проблем.<br />И я с ней столкнулся.<br />Но её легко обойти поставив в начале составные выражения а затем одиночные.</p></blockquote></div><p>А чем не устраивает вариант teadrinkerа в 10 сообщении?</p>]]></content>
			<author>
				<name><![CDATA[Malcev]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=26930</uri>
			</author>
			<updated>2014-11-25T13:06:24Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=88671#p88671</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Подсчет стоимости по списку]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=88662#p88662" />
			<content type="html"><![CDATA[<p>YMP большое спасибо!<br />Я там искал но почему то не увидел. И как баран пытался понять гугловский перевод английской версии.<br />ypppu<br />Регулярные выражения (RegEx) - краткий справочник<br />Я читал. Они не содержат описание функции regexmatch.<br />Malcev<br />Да действительно есть такая проблем.<br />И я с ней столкнулся. <br />Но её легко обойти поставив в начале составные выражения а затем одиночные.</p>]]></content>
			<author>
				<name><![CDATA[ppvladis]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27537</uri>
			</author>
			<updated>2014-11-25T10:01:50Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=88662#p88662</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Подсчет стоимости по списку]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=88500#p88500" />
			<content type="html"><![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>]]></content>
			<author>
				<name><![CDATA[ypppu]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=5974</uri>
			</author>
			<updated>2014-11-20T16:06:13Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=88500#p88500</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Подсчет стоимости по списку]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=88491#p88491" />
			<content type="html"><![CDATA[<p>Плохой вариант заменять:<br /></p><div class="codebox"><pre><code>StringReplace, spisok, spisok, сыр, 300, all</code></pre></div><p>Так как потом если будет сырный салат, то выйдет заминка.</p>]]></content>
			<author>
				<name><![CDATA[Malcev]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=26930</uri>
			</author>
			<updated>2014-11-20T12:31:59Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=88491#p88491</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Подсчет стоимости по списку]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=88473#p88473" />
			<content type="html"><![CDATA[<p><a href="http://www.script-coding.com/AutoHotkey/RegExMatch.html">http://www.script-coding.com/AutoHotkey/RegExMatch.html</a></p>]]></content>
			<author>
				<name><![CDATA[YMP]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=81</uri>
			</author>
			<updated>2014-11-19T18:56:21Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=88473#p88473</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Подсчет стоимости по списку]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=88472#p88472" />
			<content type="html"><![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>]]></content>
			<author>
				<name><![CDATA[ppvladis]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27537</uri>
			</author>
			<updated>2014-11-19T18:51:57Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=88472#p88472</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Подсчет стоимости по списку]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=88415#p88415" />
			<content type="html"><![CDATA[<p>Teadrinker большое спасибо!<br />Попробую ваши варианты и отпишусь.<br />Я нашел вариант вариант без сбоев, пока тестирую.<br />Правда он более громоздкий. <br />Протестирую выложу и его, может кому пригодится.</p>]]></content>
			<author>
				<name><![CDATA[ppvladis]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27537</uri>
			</author>
			<updated>2014-11-17T08:02:33Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=88415#p88415</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Подсчет стоимости по списку]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=88409#p88409" />
			<content type="html"><![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>]]></content>
			<author>
				<name><![CDATA[teadrinker]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=24515</uri>
			</author>
			<updated>2014-11-16T21:37:10Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=88409#p88409</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Подсчет стоимости по списку]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=88400#p88400" />
			<content type="html"><![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>]]></content>
			<author>
				<name><![CDATA[ppvladis]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27537</uri>
			</author>
			<updated>2014-11-16T17:05:29Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=88400#p88400</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Подсчет стоимости по списку]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=88394#p88394" />
			<content type="html"><![CDATA[<p>Скачайте актуальную версию.<br />Ссылка выше.</p>]]></content>
			<author>
				<name><![CDATA[Malcev]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=26930</uri>
			</author>
			<updated>2014-11-16T13:31:48Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=88394#p88394</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Подсчет стоимости по списку]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=88393#p88393" />
			<content type="html"><![CDATA[<p>Версия 1,0,47,06</p>]]></content>
			<author>
				<name><![CDATA[ppvladis]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27537</uri>
			</author>
			<updated>2014-11-16T13:23:52Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=88393#p88393</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Подсчет стоимости по списку]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=88392#p88392" />
			<content type="html"><![CDATA[<p>А версия autohotkey последняя?<br /><a href="http://ahkscript.org/">http://ahkscript.org/</a></p>]]></content>
			<author>
				<name><![CDATA[Malcev]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=26930</uri>
			</author>
			<updated>2014-11-16T12:47:01Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=88392#p88392</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Подсчет стоимости по списку]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=88391#p88391" />
			<content type="html"><![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>]]></content>
			<author>
				<name><![CDATA[ppvladis]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27537</uri>
			</author>
			<updated>2014-11-16T12:05:42Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=88391#p88391</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Подсчет стоимости по списку]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=88381#p88381" />
			<content type="html"><![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>]]></content>
			<author>
				<name><![CDATA[Malcev]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=26930</uri>
			</author>
			<updated>2014-11-16T03:21:01Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=88381#p88381</id>
		</entry>
</feed>
