Студопедия

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

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

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






  • Фильтрация элементов массива. Функция 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 :: Мои Лекции
    Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
    Копирование текстов разрешено только с указанием индексируемой ссылки на источник.