Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Фильтрация элементов массива. Функция Filter






Функция Filter является одним из вариантов поиска по образцу среди элементов массива. Здесь не требуется точного совпадения элемента и образца, достаточно, чтобы строка - образец содержалась в строке, заданной элементом массива. Поскольку совпадений может быть достаточно много, то результатом является массив отфильтрованных элементов. Некоторые детали будут пояснены при описании аргументов функции Filter. Вот ее синтаксис:

Filter(sourcearray, match[, include[, compare]])

Ее параметры имеют следующий смысл:

  • sourcearray - одномерный массив, элементы которого являются строками. Он может быть получен, например, как результат расщепления строки в массив.
  • match - образец поиска. Строка, вхождение которой ищется в каждом элементе исходного массива.
  • include - необязательный аргумент булевого типа. По умолчанию имеет значение True, означающее, что элементы, удовлетворяющие образцу, входят в результирующий массив. Если задано значение False, то результирующий массив составляется из элементов, не удовлетворяющих образцу.
  • compare - имеет обычный смысл.

В качестве результата возвращается массив отфильтрованных элементов.

Наш пример будет представлять расширенный вариант уже приводившейся процедуры SplitAndJoin:

Public Sub SplitAndJoin()

'В этой процедуре сложное предложение разделяется на простые

'А затем после обработки строка восстанавливается

'Здесь же демонстрируется фильтрация элементов массива

'Объявляем динамический массив

Dim Simple() As String, i As Byte

Dim Simple1() As String, Res As String

Dim Simple2() As String

'Размерность массива Simple устанавливается автоматически

'в соответствии с размерностью массива, возвращаемого функцией Split

Simple = Split(" А это пшеница, которая в темном чулане хранится в доме, " _

& " который построил Джек", ", ")

'Создаем новый массив

ReDim Simple1(1 To UBound(Simple) + 2)

Simple1(1) = " А это веселая птица - синица"

Simple1(2) = " которая часто ворует пшеницу"

For i = 3 To UBound(Simple1)

Simple1(i) = Simple(i - 2)

Next i

'Создаем строку из массива Simple1

 

Res = Join(Simple1, ", ")

Debug.Print Res

'Фильтрация элементов массива

Simple2 = Filter(Simple1, " котор")

Res = Join(Simple2, ", ")

Debug.Print Res

 

Simple2 = Filter(Simple1, " котор", False)

Res = Join(Simple2, ", ")

Debug.Print Res

End Sub

 

Результаты отладочной печати:

А это веселая птица - синица, которая часто ворует пшеницу, которая в темном

чулане хранится в доме, который построил Джек

которая часто ворует пшеницу, которая в темном чулане хранится в доме,

который построил Джек

А это веселая птица - синица






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.