Студопедия

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

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

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






  • Как продвинуть сайт на первые места?
    Вы создали или только планируете создать свой сайт, но не знаете, как продвигать? Продвижение сайта – это не просто процесс, а целый комплекс мероприятий, направленных на увеличение его посещаемости и повышение его позиций в поисковых системах.
    Ускорение продвижения
    Если вам трудно попасть на первые места в поиске самостоятельно, попробуйте технологию Буст, она ускоряет продвижение в десятки раз, а первые результаты появляются уже в течение первых 7 дней. Если ни один запрос у вас не продвинется в Топ10 за месяц, то в SeoHammer за бустер вернут деньги.
    Начать продвижение сайта
  • Разбор строки, допускающей разные разделители ее элементов. Функция WildSplit






    Завершим обзор рассмотрения собственных инструментальных средств описанием функции WildSplit. Когда мы описывали стандартную функцию разбора строки на элементы, мы отмечали, что она, к сожалению, не применима в тех достаточно часто встречающихся ситуациях, когда элементы разделяются разными разделителями. Наша функция в какой то мере пытается восполнить существующий пробел. Она разделяет строку на элементы, которые могут в строке разделяться разными символами, представляющими разделители элементов, возможно, окруженные пробелами.

    Алгоритм реализации прост. Он использует ранее написанную функцию замены CharSetReplace, заменяя все разделители одним. После этого становится возможным применить стандартную функцию разбора. На заключительном этапе у элементов убираются пробелы слева и справа. Следует отметить и недостаток этой функции, - преобразование необратимо и последующее применение Join не позволяет восстановить исходную строку в первозданном виде. Приведем текст этой функции:

     

    Public Function WildSplit(expr As String, Optional ByVal delimiter As String = " ", _

    Optional ByVal limit As Long = -1, Optional ByVal compare As

    VbCompareMethod = vbBinaryCompare) As Variant

    'Также, как и стандартная функция Split, эта функция расщепляет строку - источник expr

    'на элементы, используя разделители, заданные аргументом delimiter

    'Отличие состоит в том, что при выделении элементов предполагается, что разделителем

    'может быть любой из символов множества delimeter, возможно, окруженный пробелами

     

    Dim Source As String, ResAr() As String

    Dim find As String, Rep As String

    Dim i As Long

     

    Source = expr

    find = VBA.Mid$(delimiter, 2)

    Rep = VBA.Left$(delimiter, 1)

    'Заменяем в строке все разделители на один из них

    Source = CharSetReplace(Source, find, Rep)

     

    'Теперь используем стандартную функцию Split

    ResAr = Split(Source, Rep, limit, compare)

     

    'Удаляем пробелы

    For i = LBound(ResAr) To UBound(ResAr)

    ResAr(i) = VBA.Trim$(ResAr(i))

    Next i

    WildSplit = ResAr

    End Function

     

    Приведем также тестовую процедуру, в которой выполняется разбор строки функцией 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

    На этом мы закончим наш затянувшийся разговор о работе со строковыми данными.

     






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