Завершим обзор рассмотрения собственных инструментальных средств описанием функции WildSplit. Когда мы описывали стандартную функцию разбора строки на элементы, мы отмечали, что она, к сожалению, не применима в тех достаточно часто встречающихся ситуациях, когда элементы разделяются разными разделителями. Наша функция в какой то мере пытается восполнить существующий пробел. Она разделяет строку на элементы, которые могут в строке разделяться разными символами, представляющими разделители элементов, возможно, окруженные пробелами.
Алгоритм реализации прост. Он использует ранее написанную функцию замены CharSetReplace, заменяя все разделители одним. После этого становится возможным применить стандартную функцию разбора. На заключительном этапе у элементов убираются пробелы слева и справа. Следует отметить и недостаток этой функции, - преобразование необратимо и последующее применение Join не позволяет восстановить исходную строку в первозданном виде. Приведем текст этой функции:
Пример 8.6.
(html, txt)
Приведем также тестовую процедуру, в которой выполняется разбор строки функцией WildSplit:
Public Sub testWildSplit() Dim Txt As String, Res As String Dim Items() As String
Txt = "a * b - (c+d)/v" Items = WildSplit(Txt, "+-*/") Res = Join(Items) Debug.Print Res End Sub
Вот результаты ее работы:
a b (c d) v
На этом мы закончим наш затянувшийся разговор о работе со строковыми данными.