<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Серый форум &mdash; VBScript: работа с массивами строк с помощью компонента CkStringArray]]></title>
		<link>https://forum.script-coding.com/viewtopic.php?id=2894</link>
		<atom:link href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=2894&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «VBScript: работа с массивами строк с помощью компонента CkStringArray».]]></description>
		<lastBuildDate>Mon, 09 Mar 2009 15:17:25 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[VBScript: работа с массивами строк с помощью компонента CkStringArray]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=20405#p20405</link>
			<description><![CDATA[<p>Компонент <strong>ChilkatUtil.dll</strong>, который содержит несколько полезных COM-серверов (в т.ч. <strong>CkStringArray</strong>), устанавливается вместе с <a href="http://forum.script-coding.com/viewtopic.php?id=2878">Chilkat Spider</a>.</p><p>Объект <strong>CkStringArray</strong> предоставляет удобные методы для работы с массивами строк. Это служебный класс, используемый многими компонентами Chilkat, объект, который содержит 0 или больше строк, которые могут быть найдены по индексу. Причина создания этого объекта — унификация работы с массивами строк в различных языках программирования. Документацию по этому компоненту можно найти <a href="http://www.chilkatsoft.com/refdoc/xCkStringArrayRef.html">здесь</a>.</p><p>Возможности объекта:<br />* всегда упорядоченное хранение элементов; добавление элемента в конец, в начало, в указанный индекс; получение и удаление элемента по индексу; получение последнего элемента массива, в т.ч. с возможностью его одновременного удаления из массива (стек);<br />* сортировка;<br />* сохранение в файл и восстановление из файла; сохранение в файл указанного элемента;<br />* удаление, поиск и проверка вхождения элемента по его содержимому;<br />* пополнение массива из строки с разделителями, многострочного текста, сохранение в многострочный текст;<br />* режим автоматического Trim (включая vbCrLf) при добавлении элементов;<br />* режим автоматического накопления строк без дубликатов;<br />* сохранение массива в формате base64 и восстановление из него;<br />* нахождение пересечения, разности, объединения двух массивов;</p><p>Демонстрация некоторых свойств и методов:<br /></p><div class="codebox"><pre><code>Set oList = CreateObject(&quot;Chilkat.CkStringArray&quot;)
oList.Append &quot;Abc&quot;
oList.Append &quot;123&quot;
oList.Append &quot;Chilkat Software, Inc.&quot;
&#039; добавление элемента в указанный индекс:
oList.InsertAt 0, &quot;abc&quot; &#039; в начало
&#039; сортировка:
oList.Sort 1
For i = 0 To oList.Count - 1
    WScript.Echo oList.GetString(i)
Next
WScript.Echo
&#039; сохранение в файл:
oList.Crlf = 1
oList.SaveToFile &quot;c:\temp\testing\strings.txt&quot;
&#039; очистка:
oList.Clear()
&#039; восстановление из файла:
oList.LoadFromFile &quot;c:\temp\testing\strings.txt&quot;
&#039; удаление элемента по его содержимому:
oList.Remove &quot;abc&quot;
&#039; удаление элемента по индексу:
oList.RemoveAt 2
&#039; автоматический Trim (включая vbCrLf) при добавлении элементов:
oList.Trim = 1
&#039; пополнение из строки с разделителями:
oList.SplitAndAppend &quot;раз, два, три&quot;, &quot;,&quot;
&#039; сохранение массива в формате base64
base64 = oList.Serialize()
&#039; восстановление массива из формата base64:
oList.Clear()
oList.AppendSerialized base64
For i = 0 To oList.Count - 1
    WScript.Echo oList.GetString(i)
Next
WScript.Echo
&#039; поиск:
startIndex = 0
index = oList.Find(&quot;два&quot;, startIndex)
If (index &gt;= 0) Then
    WScript.Echo oList.GetString(index)
End If
&#039; проверка вхождения:
If oList.Contains(&quot;два&quot;) = 1 Then
    WScript.Echo &quot;найдено&quot;
End If</code></pre></div><p>Накопление строк без дубликатов:<br /></p><div class="codebox"><pre><code>Set oList = CreateObject(&quot;Chilkat.CkStringArray&quot;)
oList.Unique = 1 &#039; не добавлять дубликаты
oList.Append &quot;раз&quot;
oList.Append &quot;два&quot;
oList.Append &quot;два&quot;
For i = 0 To oList.Count - 1
    WScript.Echo oList.GetString(i)
Next</code></pre></div><p>Нахождение пересечения массивов:<br /></p><div class="codebox"><pre><code>Set oList = CreateObject(&quot;Chilkat.CkStringArray&quot;)
oList.Append &quot;abc&quot;
oList.Append &quot;zzz&quot;
Set oList2 = CreateObject(&quot;Chilkat.CkStringArray&quot;)
oList2.Append &quot;abc&quot;
oList2.Append &quot;yyy&quot;
oList2.Intersect(oList)
For i = 0 To oList2.Count - 1
    WScript.Echo oList.GetString(i) &#039; abc
Next</code></pre></div><p>Объединение массивов без дубликатов:<br /></p><div class="codebox"><pre><code>Set oList = CreateObject(&quot;Chilkat.CkStringArray&quot;)
oList.Append &quot;abc&quot;
oList.Append &quot;zzz&quot;
Set oList2 = CreateObject(&quot;Chilkat.CkStringArray&quot;)
oList2.Append &quot;abc&quot;
oList2.Append &quot;yyy&quot;
oList2.Unique = 1
oList2.Union(oList)
WScript.Echo oList2.SaveToText()</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (The gray Cardinal)]]></author>
			<pubDate>Mon, 09 Mar 2009 15:17:25 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=20405#p20405</guid>
		</item>
	</channel>
</rss>
