<?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="http://forum.script-coding.com/extern.php?action=feed&amp;tid=5769&amp;type=atom" />
	<updated>2011-05-09T22:15:33Z</updated>
	<generator>PunBB</generator>
	<id>http://forum.script-coding.com/viewtopic.php?id=5769</id>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Дальнейшие действия с текстом в зависимости от количества строк]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=48277#p48277" />
			<content type="html"><![CDATA[<p>В другую программу нужно вставлять не буфер обмена, а переменные String1, String2... по очереди.</p>]]></content>
			<author>
				<name><![CDATA[teadrinker]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=24515</uri>
			</author>
			<updated>2011-05-09T22:15:33Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=48277#p48277</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Дальнейшие действия с текстом в зависимости от количества строк]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=48276#p48276" />
			<content type="html"><![CDATA[<p>Но в буфер обмена попадает <br /></p><div class="quotebox"><blockquote><p>Мама мыла раму.<br />Маша ела кашу.</p></blockquote></div><p>И соответственно в другую программу вставляется<br /></p><div class="quotebox"><blockquote><p>Мама мыла раму.<br />Маша ела кашу.</p></blockquote></div>]]></content>
			<author>
				<name><![CDATA[Malcev]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=26930</uri>
			</author>
			<updated>2011-05-09T22:10:34Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=48276#p48276</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Дальнейшие действия с текстом в зависимости от количества строк]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=48275#p48275" />
			<content type="html"><![CDATA[<div class="codebox"><pre><code>; для демонстрации
Clipboard =
(
Мама мыла раму.
Маша ела кашу.
)

MaxSigns = 10  ; заменить на нужное
i := n := PrevEndPos := 1

StringReplace, Clipboard, Clipboard, `r,, 1
Length := StrLen(Clipboard)
Loop, parse, ClipBoard
{
   if (A_Index = Length)
      EndPos := A_Index + 1
   if (A_LoopField = &quot; &quot; || A_LoopField = &quot;`n&quot;)
      EndPos := A_Index
   if (A_Index = Length || A_LoopField = &quot;`n&quot; || i = MaxSigns + 1)
   {
      String%n% := SubStr(ClipBoard, PrevEndPos, EndPos - PrevEndPos)
      PrevEndPos := EndPos + 1, i := A_Index - EndPos, n++
   }
   i++
}
; для демонстрации
While String%A_Index%
   MsgBox, % &quot;String&quot; A_Index &quot; = |&quot; String%A_Index% &quot;|&quot;</code></pre></div>]]></content>
			<author>
				<name><![CDATA[teadrinker]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=24515</uri>
			</author>
			<updated>2011-05-09T21:50:39Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=48275#p48275</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Дальнейшие действия с текстом в зависимости от количества строк]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=48273#p48273" />
			<content type="html"><![CDATA[<p>Допустим, при таком тексте<br /></p><div class="quotebox"><blockquote><p>Мама мыла раму.<br />Маша ела кашу.</p></blockquote></div><p>Получим при максимуме в 10 знаках<br /></p><div class="quotebox"><blockquote><p>Мама мыла<br />раму.<br />Маша ела<br />кашу.</p></blockquote></div>]]></content>
			<author>
				<name><![CDATA[Malcev]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=26930</uri>
			</author>
			<updated>2011-05-09T20:53:11Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=48273#p48273</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Дальнейшие действия с текстом в зависимости от количества строк]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=48272#p48272" />
			<content type="html"><![CDATA[<p>А сам последний пробел или знак переноса строки включаем?</p>]]></content>
			<author>
				<name><![CDATA[teadrinker]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=24515</uri>
			</author>
			<updated>2011-05-09T20:40:29Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=48272#p48272</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Дальнейшие действия с текстом в зависимости от количества строк]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=48269#p48269" />
			<content type="html"><![CDATA[<div class="quotebox"><blockquote><p>Можно разбить текст в буфере обмена на составные части по принципу &quot;если больше указанного количества знаков, берётся часть текста, включающая нужное количество знаков + текст до ближайшего пробела или знака переноса строки</p></blockquote></div><p>Мне бы нужно было &quot;если больше указанного количества знаков, берётся часть текста, включающая нужное количество знаков (минус) текст до ближайшего пробела или знака переноса строки.<br />То есть в каждой строке чтобы было не больше 20 знаков.<br />Если больше, то идём назад до пробела и переносим.</p>]]></content>
			<author>
				<name><![CDATA[Malcev]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=26930</uri>
			</author>
			<updated>2011-05-09T17:44:10Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=48269#p48269</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Дальнейшие действия с текстом в зависимости от количества строк]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=48257#p48257" />
			<content type="html"><![CDATA[<p>Да, но попозже.</p>]]></content>
			<author>
				<name><![CDATA[teadrinker]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=24515</uri>
			</author>
			<updated>2011-05-09T14:02:23Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=48257#p48257</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Дальнейшие действия с текстом в зависимости от количества строк]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=48256#p48256" />
			<content type="html"><![CDATA[<p>Да. вот это именно, то что надо.<br />Поможете?</p>]]></content>
			<author>
				<name><![CDATA[Malcev]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=26930</uri>
			</author>
			<updated>2011-05-09T13:59:56Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=48256#p48256</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Дальнейшие действия с текстом в зависимости от количества строк]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=48254#p48254" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>Malcev пишет:</cite><blockquote><p>P.S. А реально ли сделать такое, чтобы текст разбивался на строчки автоматически, миную блокнот?<br />Например, если одной строке задать максимальное количество знаков, если знаков больше, то находим пробел и весь текст после пробела переносим на следующую строку.<br />То есть, я имею ввиду делать word-wrap в самом буфере</p></blockquote></div><p>Можно разбить текст в буфере обмена на составные части по принципу &quot;если больше указанного количества знаков, берётся часть текста, включающая нужное количество знаков + текст до ближайшего пробела или знака переноса строки, и всё это заносится в переменную, затем по тому же принципу следующий участок текста, и так далее до конца текста в буфере&quot;. Таким образом получаем массив переменных String1, String2... в каждой из которых часть текста.</p>]]></content>
			<author>
				<name><![CDATA[teadrinker]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=24515</uri>
			</author>
			<updated>2011-05-09T13:56:02Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=48254#p48254</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Дальнейшие действия с текстом в зависимости от количества строк]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=48252#p48252" />
			<content type="html"><![CDATA[<p>Мне нужно, чтобы мною выделенный текст переносился в блокнот.<br />В блокноте у меня заранее окошко нужного мне размера.<br />Соответственно вставленный текст разбивается с новым word-wrap.<br />И уже из блокнота в зависимости от количества строк с текстом делаются последующие действия.<br />Изменённый мной ваш скрипт, почему-то не работает, хотя по моей логике в нём написано всё верно.</p><p>P.S. А реально ли сделать такое, чтобы текст разбивался на строчки автоматически, миную блокнот?<br />Например, если одной строке задать максимальное количество знаков, если знаков больше, то находим пробел и весь текст после пробела переносим на следующую строку.<br />То есть, я имею ввиду делать word-wrap в самом буфере</p>]]></content>
			<author>
				<name><![CDATA[Malcev]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=26930</uri>
			</author>
			<updated>2011-05-09T13:40:15Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=48252#p48252</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Дальнейшие действия с текстом в зависимости от количества строк]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=48249#p48249" />
			<content type="html"><![CDATA[<p>Так тебе нужно, чтобы скрипт переносил текст именно из блокнота, или непосредственно из буфера обмена?</p>]]></content>
			<author>
				<name><![CDATA[teadrinker]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=24515</uri>
			</author>
			<updated>2011-05-09T13:29:49Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=48249#p48249</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Дальнейшие действия с текстом в зависимости от количества строк]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=48239#p48239" />
			<content type="html"><![CDATA[<p>Вот всё, что удалось &quot;родить&quot;<br />Teadrinker, нужна ваша помощь<br /></p><div class="codebox"><pre><code>Код (AutoHotKey):

   SetTitleMatchMode, 2
   TargetWindov =   ; указать целевое окно
   StringMaxLength = 200   ; указать максимальный размер копируемой строки в символах (можно больше)
   String = &quot;&quot; ; обьявляем пустую строку
   MyLineCounter = 0 ; кол-во строк
 
   EM_GETLINECOUNT := 0xBA, EM_GETLINE := 0xC4
   Return
 
F11::
   ControlGet, hEdit, hwnd,, Edit1, A
   SendMessage, EM_GETLINECOUNT,,,, ahk_id %hEdit%
   Loop % ErrorLevel  ; количество строк в Edit-контроле блокнота
   {
   MyLineCounter = MyLineCounter + 1
      String = String +
      VarSetCapacity(String, StringMaxLength)
      NumPut(StringMaxLength, String)
      SendMessage, EM_GETLINE, A_Index - 1, &amp;String,, ahk_id %hEdit%  ; прибавляем строку в переменную String 
   
   }
 
 if MyLineCounter = 3  ; если 3 строчки то ...
 {
    Clipboard = %String%   ; помещаем строки в буфер обмена
    WinActivate, %TargetWindov%
    SendInput, ^{vk56}   ; посылаем целевому окну Ctrl + V, вставляя текст из буфера обмена
    Sleep, 400
 
 } else if MyLineCounter = 4    ; если 4 строчки то ...
 {
    Clipboard = %String%   ; помещаем строки в буфер обмена
    WinActivate, %TargetWindov%
    SendInput, ^{vk56}   ; посылаем целевому окну Ctrl + V, вставляя текст из буфера обмена
    Sleep, 400
 }
  
Return</code></pre></div>]]></content>
			<author>
				<name><![CDATA[Malcev]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=26930</uri>
			</author>
			<updated>2011-05-09T09:00:18Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=48239#p48239</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Дальнейшие действия с текстом в зависимости от количества строк]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=48015#p48015" />
			<content type="html"><![CDATA[<p>Мыслишь в правильном направлении, но для начала неплохо бы почитать справку по командам AHK, в частности ознакомиться с синтаксисом команды <em><a href="http://www.autohotkey.com/docs/commands/IfEqual.htm">if</a></em> и <a href="http://script-coding.com/AutoHotkey/SendMessage.html"><em>SendMessage</em></a>. Чтобы получить текст из контрола, существует команда <em><a href="http://script-coding.com/AutoHotkey/ControlGetText.html">ControlGetText</a></em>.</p>]]></content>
			<author>
				<name><![CDATA[teadrinker]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=24515</uri>
			</author>
			<updated>2011-05-02T12:38:10Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=48015#p48015</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Дальнейшие действия с текстом в зависимости от количества строк]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=48014#p48014" />
			<content type="html"><![CDATA[<p>Честно, понял не всё.<br />Я пытался эти выражения гуглить, но всё равно тёмный лес.<br />Слижком сложное программирование.<br />Как я понимаю в переменную String нужно скопировать вместо EM_GETLINE, просто весь текст, убрать цикл и создать выражение if then</p>]]></content>
			<author>
				<name><![CDATA[Malcev]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=26930</uri>
			</author>
			<updated>2011-05-02T11:59:08Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=48014#p48014</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Дальнейшие действия с текстом в зависимости от количества строк]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=48013#p48013" />
			<content type="html"><![CDATA[<p><strong>Malcev</strong>, задачей форума не является писать желающим скрипты, а помогать писать скрипты людям, желающим научиться это делать. Ты разобрался, как работает предыдущий скрипт? <img src="//forum.script-coding.com/img/smilies/wink.png" width="15" height="15" /></p>]]></content>
			<author>
				<name><![CDATA[teadrinker]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=24515</uri>
			</author>
			<updated>2011-05-02T11:20:05Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=48013#p48013</id>
		</entry>
</feed>
