<?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=14673</link>
		<atom:link href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=14673&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «AHK: Деление строки по словами».]]></description>
		<lastBuildDate>Tue, 26 Mar 2019 22:31:19 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: AHK: Деление строки по словами]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=133191#p133191</link>
			<description><![CDATA[<p>Это действительно круто получилось! Спасибо.</p>]]></description>
			<author><![CDATA[null@example.com (Phoenixxx_Czar)]]></author>
			<pubDate>Tue, 26 Mar 2019 22:31:19 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=133191#p133191</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Деление строки по словами]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=133190#p133190</link>
			<description><![CDATA[<div class="codebox"><pre><code>str := &quot;Lorem ipsum dolor sit amet consectetur, adipisicing elit. Quaerat placeat consequatur itaque quia explicabo magnam molestias! Rerum mollitia dolores suscipit. Alias cupiditate nesciunt doloribus, eaque sint quaerat sed, ullam unde non architecto soluta exercitationem. Aperiam facere, dolorum molestias ipsum illo expedita earum cupiditate, alias exercitationem quas iure recusandae nobis quidem!&quot;
for k, v in splitStringLimit(str, 80)
   msgbox, % v

splitStringLimit(text, limit)
{
   out := []
   while RegExMatch(text, &quot;xO)(?&lt;=\s|^) ( ([^`r`n]){1,&quot; . limit . &quot;} | (?2)+? ) (\s|$)&quot;, match, match ? match.Pos + match.Len : 1)
      out.Push(match[1])
   Return out
}</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (teadrinker)]]></author>
			<pubDate>Tue, 26 Mar 2019 21:47:00 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=133190#p133190</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Деление строки по словами]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=133189#p133189</link>
			<description><![CDATA[<p>Когда у меня была задача вывести на экран пользователя все команды которые доступны для его ввода (командный процессор с СМма) я сделал вот так:<br /></p><div class="codebox"><pre><code>
for k in CMD.List {
	if (A_Index = 1) {
		str .=  k 
	} else {
		str .= &quot;, &quot; k &quot;&quot;
	}
}
		
sarr := StrSplit(str, &quot;, &quot;)
for k, v in sarr {
	if (A_Index = 1) {
		st .= &quot;Доступные команды: &quot; v &quot;&quot;
		continue
	}
	
	if (Strsplit(st).MaxIndex() + Strsplit(v).MaxIndex() &lt;= 120) {
		st .= &quot;, &quot; v &quot;&quot;
	} else {
		addmessagetochatwindow2(&quot;{ff0000}&quot;, &quot;[AHK]: {FFFAFA}&quot; . st . &quot;&quot;)
		st := &quot;&quot;
		st .= v
	}
}
addmessagetochatwindow2(&quot;{ff0000}&quot;, &quot;[AHK]: {FFFAFA}&quot; . st . &quot;.&quot;)</code></pre></div><p>Тоже давненько делал но выглядит вроде бы привлекательнее. Если добавить тернарных операторов, а каждый addmessagetochatwindow2 заменить на создание исходного массива то думаю будет нормально.</p>]]></description>
			<author><![CDATA[null@example.com (belyankin12)]]></author>
			<pubDate>Tue, 26 Mar 2019 20:14:37 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=133189#p133189</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Деление строки по словами]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=133188#p133188</link>
			<description><![CDATA[<div class="codebox"><pre><code>str := &quot;Lorem ipsum dolor sit amet consectetur, adipisicing elit. Quaerat placeat consequatur itaque quia explicabo magnam molestias! Rerum mollitia dolores suscipit. Alias cupiditate nesciunt doloribus, eaque sint quaerat sed, ullam unde non architecto soluta exercitationem. Aperiam facere, dolorum molestias ipsum illo expedita earum cupiditate, alias exercitationem quas iure recusandae nobis quidem!&quot;
for k, v in splitStringLimit(str, 80)
	msgbox, % v</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (Phoenixxx_Czar)]]></author>
			<pubDate>Tue, 26 Mar 2019 19:38:41 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=133188#p133188</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Деление строки по словами]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=133187#p133187</link>
			<description><![CDATA[<p>Есть предложение/строка, допустим она длинной 350 символов, а нам нужно разделить эту большую строку по 80 символов. Данная функция именно для этого. (Она не обрезает слова, именно для этого там сплит строки по пробелам.)</p>]]></description>
			<author><![CDATA[null@example.com (Phoenixxx_Czar)]]></author>
			<pubDate>Tue, 26 Mar 2019 19:33:55 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=133187#p133187</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Деление строки по словами]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=133186#p133186</link>
			<description><![CDATA[<p>Я не понял, что делает limit:<br /></p><div class="codebox"><pre><code>obj := splitStringLimit(&quot;C:\Program Files\AutoHotkey\AutoHotkey.exe /ErrorStdOut D:\OneDrive\Scripts\_Разработка\New7.ahk&quot;, 1)
for k, v in obj
   MsgBox, % v

splitStringLimit(text, limit)
{
   out := []
   index := 1

   if text Contains % &quot;``n&quot;
   {
      for k, v in StrSplit(text, &quot;``n&quot;)
      {
         for key, value in splitStringLimit(v, limit)
            out[index] := value, index++
      }
      return out
   }

   for k, v in StrSplit(text, A_Space)
   {
      if (A_Index == 1)
         out[index] := v
      Else
      {
         if (StrLen(out[index] &quot; &quot; v) &lt;= limit)
            out[index] .= &quot; &quot; v
         Else
            index++, out[index] := v
      }
   }
   return out
}</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (teadrinker)]]></author>
			<pubDate>Tue, 26 Mar 2019 19:08:39 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=133186#p133186</guid>
		</item>
		<item>
			<title><![CDATA[AHK: Деление строки по словами]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=133185#p133185</link>
			<description><![CDATA[<p>Давненько делал себе функцию, которая делит строку по словам. Хотелось бы ее как-то оптимизировать чтоль.<br /></p><div class="codebox"><pre><code>splitStringLimit(text, limit)
{
	out := []
	index := 1

	if text Contains % &quot;``n&quot;
	{
		for k, v in StrSplit(text, &quot;``n&quot;)
		{
			for key, value in splitStringLimit(v, limit)
				out[index] := value, index++
		}
		return out
	}

	for k, v in StrSplit(text, A_Space)
	{
		if (A_Index == 1)
			out[index] := v
		Else
		{
			if (StrLen(out[index] &quot; &quot; v) &lt;= limit)
				out[index] .= &quot; &quot; v
			Else
				index++, out[index] := v
		}
	}
	return out
}</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (Phoenixxx_Czar)]]></author>
			<pubDate>Tue, 26 Mar 2019 18:36:13 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=133185#p133185</guid>
		</item>
	</channel>
</rss>
