1

Тема: VBScript: работа с массивами строк с помощью компонента CkStringArray

Компонент ChilkatUtil.dll, который содержит несколько полезных COM-серверов (в т.ч. CkStringArray), устанавливается вместе с Chilkat Spider.

Объект CkStringArray предоставляет удобные методы для работы с массивами строк. Это служебный класс, используемый многими компонентами Chilkat, объект, который содержит 0 или больше строк, которые могут быть найдены по индексу. Причина создания этого объекта — унификация работы с массивами строк в различных языках программирования. Документацию по этому компоненту можно найти здесь.

Возможности объекта:
* всегда упорядоченное хранение элементов; добавление элемента в конец, в начало, в указанный индекс; получение и удаление элемента по индексу; получение последнего элемента массива, в т.ч. с возможностью его одновременного удаления из массива (стек);
* сортировка;
* сохранение в файл и восстановление из файла; сохранение в файл указанного элемента;
* удаление, поиск и проверка вхождения элемента по его содержимому;
* пополнение массива из строки с разделителями, многострочного текста, сохранение в многострочный текст;
* режим автоматического Trim (включая vbCrLf) при добавлении элементов;
* режим автоматического накопления строк без дубликатов;
* сохранение массива в формате base64 и восстановление из него;
* нахождение пересечения, разности, объединения двух массивов;

Демонстрация некоторых свойств и методов:

Set oList = CreateObject("Chilkat.CkStringArray")
oList.Append "Abc"
oList.Append "123"
oList.Append "Chilkat Software, Inc."
' добавление элемента в указанный индекс:
oList.InsertAt 0, "abc" ' в начало
' сортировка:
oList.Sort 1
For i = 0 To oList.Count - 1
    WScript.Echo oList.GetString(i)
Next
WScript.Echo
' сохранение в файл:
oList.Crlf = 1
oList.SaveToFile "c:\temp\testing\strings.txt"
' очистка:
oList.Clear()
' восстановление из файла:
oList.LoadFromFile "c:\temp\testing\strings.txt"
' удаление элемента по его содержимому:
oList.Remove "abc"
' удаление элемента по индексу:
oList.RemoveAt 2
' автоматический Trim (включая vbCrLf) при добавлении элементов:
oList.Trim = 1
' пополнение из строки с разделителями:
oList.SplitAndAppend "раз, два, три", ","
' сохранение массива в формате base64
base64 = oList.Serialize()
' восстановление массива из формата base64:
oList.Clear()
oList.AppendSerialized base64
For i = 0 To oList.Count - 1
    WScript.Echo oList.GetString(i)
Next
WScript.Echo
' поиск:
startIndex = 0
index = oList.Find("два", startIndex)
If (index >= 0) Then
    WScript.Echo oList.GetString(index)
End If
' проверка вхождения:
If oList.Contains("два") = 1 Then
    WScript.Echo "найдено"
End If

Накопление строк без дубликатов:

Set oList = CreateObject("Chilkat.CkStringArray")
oList.Unique = 1 ' не добавлять дубликаты
oList.Append "раз"
oList.Append "два"
oList.Append "два"
For i = 0 To oList.Count - 1
    WScript.Echo oList.GetString(i)
Next

Нахождение пересечения массивов:

Set oList = CreateObject("Chilkat.CkStringArray")
oList.Append "abc"
oList.Append "zzz"
Set oList2 = CreateObject("Chilkat.CkStringArray")
oList2.Append "abc"
oList2.Append "yyy"
oList2.Intersect(oList)
For i = 0 To oList2.Count - 1
    WScript.Echo oList.GetString(i) ' abc
Next

Объединение массивов без дубликатов:

Set oList = CreateObject("Chilkat.CkStringArray")
oList.Append "abc"
oList.Append "zzz"
Set oList2 = CreateObject("Chilkat.CkStringArray")
oList2.Append "abc"
oList2.Append "yyy"
oList2.Unique = 1
oList2.Union(oList)
WScript.Echo oList2.SaveToText()
Предложения в русском языке начинаются с большой буквы и заканчиваются точкой.
В названии ветки всегда должен быть указан язык программирования или среда исполнения скрипта, если это возможно.