<?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>http://forum.script-coding.com/viewtopic.php?id=5769</link>
		<atom:link href="http://forum.script-coding.com/extern.php?action=feed&amp;tid=5769&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «AHK: Дальнейшие действия с текстом в зависимости от количества строк».]]></description>
		<lastBuildDate>Mon, 09 May 2011 22:15:33 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: AHK: Дальнейшие действия с текстом в зависимости от количества строк]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=48277#p48277</link>
			<description><![CDATA[<p>В другую программу нужно вставлять не буфер обмена, а переменные String1, String2... по очереди.</p>]]></description>
			<author><![CDATA[null@example.com (teadrinker)]]></author>
			<pubDate>Mon, 09 May 2011 22:15:33 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=48277#p48277</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Дальнейшие действия с текстом в зависимости от количества строк]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=48276#p48276</link>
			<description><![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>]]></description>
			<author><![CDATA[null@example.com (Malcev)]]></author>
			<pubDate>Mon, 09 May 2011 22:10:34 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=48276#p48276</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Дальнейшие действия с текстом в зависимости от количества строк]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=48275#p48275</link>
			<description><![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>]]></description>
			<author><![CDATA[null@example.com (teadrinker)]]></author>
			<pubDate>Mon, 09 May 2011 21:50:39 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=48275#p48275</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Дальнейшие действия с текстом в зависимости от количества строк]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=48273#p48273</link>
			<description><![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>]]></description>
			<author><![CDATA[null@example.com (Malcev)]]></author>
			<pubDate>Mon, 09 May 2011 20:53:11 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=48273#p48273</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Дальнейшие действия с текстом в зависимости от количества строк]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=48272#p48272</link>
			<description><![CDATA[<p>А сам последний пробел или знак переноса строки включаем?</p>]]></description>
			<author><![CDATA[null@example.com (teadrinker)]]></author>
			<pubDate>Mon, 09 May 2011 20:40:29 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=48272#p48272</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Дальнейшие действия с текстом в зависимости от количества строк]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=48269#p48269</link>
			<description><![CDATA[<div class="quotebox"><blockquote><p>Можно разбить текст в буфере обмена на составные части по принципу &quot;если больше указанного количества знаков, берётся часть текста, включающая нужное количество знаков + текст до ближайшего пробела или знака переноса строки</p></blockquote></div><p>Мне бы нужно было &quot;если больше указанного количества знаков, берётся часть текста, включающая нужное количество знаков (минус) текст до ближайшего пробела или знака переноса строки.<br />То есть в каждой строке чтобы было не больше 20 знаков.<br />Если больше, то идём назад до пробела и переносим.</p>]]></description>
			<author><![CDATA[null@example.com (Malcev)]]></author>
			<pubDate>Mon, 09 May 2011 17:44:10 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=48269#p48269</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Дальнейшие действия с текстом в зависимости от количества строк]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=48257#p48257</link>
			<description><![CDATA[<p>Да, но попозже.</p>]]></description>
			<author><![CDATA[null@example.com (teadrinker)]]></author>
			<pubDate>Mon, 09 May 2011 14:02:23 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=48257#p48257</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Дальнейшие действия с текстом в зависимости от количества строк]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=48256#p48256</link>
			<description><![CDATA[<p>Да. вот это именно, то что надо.<br />Поможете?</p>]]></description>
			<author><![CDATA[null@example.com (Malcev)]]></author>
			<pubDate>Mon, 09 May 2011 13:59:56 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=48256#p48256</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Дальнейшие действия с текстом в зависимости от количества строк]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=48254#p48254</link>
			<description><![CDATA[<div class="quotebox"><cite>Malcev пишет:</cite><blockquote><p>P.S. А реально ли сделать такое, чтобы текст разбивался на строчки автоматически, миную блокнот?<br />Например, если одной строке задать максимальное количество знаков, если знаков больше, то находим пробел и весь текст после пробела переносим на следующую строку.<br />То есть, я имею ввиду делать word-wrap в самом буфере</p></blockquote></div><p>Можно разбить текст в буфере обмена на составные части по принципу &quot;если больше указанного количества знаков, берётся часть текста, включающая нужное количество знаков + текст до ближайшего пробела или знака переноса строки, и всё это заносится в переменную, затем по тому же принципу следующий участок текста, и так далее до конца текста в буфере&quot;. Таким образом получаем массив переменных String1, String2... в каждой из которых часть текста.</p>]]></description>
			<author><![CDATA[null@example.com (teadrinker)]]></author>
			<pubDate>Mon, 09 May 2011 13:56:02 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=48254#p48254</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Дальнейшие действия с текстом в зависимости от количества строк]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=48252#p48252</link>
			<description><![CDATA[<p>Мне нужно, чтобы мною выделенный текст переносился в блокнот.<br />В блокноте у меня заранее окошко нужного мне размера.<br />Соответственно вставленный текст разбивается с новым word-wrap.<br />И уже из блокнота в зависимости от количества строк с текстом делаются последующие действия.<br />Изменённый мной ваш скрипт, почему-то не работает, хотя по моей логике в нём написано всё верно.</p><p>P.S. А реально ли сделать такое, чтобы текст разбивался на строчки автоматически, миную блокнот?<br />Например, если одной строке задать максимальное количество знаков, если знаков больше, то находим пробел и весь текст после пробела переносим на следующую строку.<br />То есть, я имею ввиду делать word-wrap в самом буфере</p>]]></description>
			<author><![CDATA[null@example.com (Malcev)]]></author>
			<pubDate>Mon, 09 May 2011 13:40:15 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=48252#p48252</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Дальнейшие действия с текстом в зависимости от количества строк]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=48249#p48249</link>
			<description><![CDATA[<p>Так тебе нужно, чтобы скрипт переносил текст именно из блокнота, или непосредственно из буфера обмена?</p>]]></description>
			<author><![CDATA[null@example.com (teadrinker)]]></author>
			<pubDate>Mon, 09 May 2011 13:29:49 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=48249#p48249</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Дальнейшие действия с текстом в зависимости от количества строк]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=48239#p48239</link>
			<description><![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>]]></description>
			<author><![CDATA[null@example.com (Malcev)]]></author>
			<pubDate>Mon, 09 May 2011 09:00:18 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=48239#p48239</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Дальнейшие действия с текстом в зависимости от количества строк]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=48015#p48015</link>
			<description><![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>]]></description>
			<author><![CDATA[null@example.com (teadrinker)]]></author>
			<pubDate>Mon, 02 May 2011 12:38:10 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=48015#p48015</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Дальнейшие действия с текстом в зависимости от количества строк]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=48014#p48014</link>
			<description><![CDATA[<p>Честно, понял не всё.<br />Я пытался эти выражения гуглить, но всё равно тёмный лес.<br />Слижком сложное программирование.<br />Как я понимаю в переменную String нужно скопировать вместо EM_GETLINE, просто весь текст, убрать цикл и создать выражение if then</p>]]></description>
			<author><![CDATA[null@example.com (Malcev)]]></author>
			<pubDate>Mon, 02 May 2011 11:59:08 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=48014#p48014</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Дальнейшие действия с текстом в зависимости от количества строк]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=48013#p48013</link>
			<description><![CDATA[<p><strong>Malcev</strong>, задачей форума не является писать желающим скрипты, а помогать писать скрипты людям, желающим научиться это делать. Ты разобрался, как работает предыдущий скрипт? <img src="//forum.script-coding.com/img/smilies/wink.png" width="15" height="15" /></p>]]></description>
			<author><![CDATA[null@example.com (teadrinker)]]></author>
			<pubDate>Mon, 02 May 2011 11:20:05 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=48013#p48013</guid>
		</item>
	</channel>
</rss>
