Работа со Split

Тема в разделе "Lotus - Программирование", создана пользователем azzzza, 7 сен 2011.

Статус темы:
Закрыта.
  1. azzzza

    azzzza Гость

    Добрый день. Помогите, пожалуйста, справиться с проблемой.
    2. Есть строка, типу
    Код (LotusScript):
    str$ = "a-a.1; a-b.1; a-a.2; a-b.3; a-a.4; a-a.7; a-b.2..."
    Нужно найти, сколько раз в каждом маленьком отрезке(который отделен двоеточием) встречается a-a.
    Думаю в следующем направлении направлении:
    Разбить строку Split-ом на куски и в цикле сравнивать на вхождение через Instr и увеличивать счетчик.
    Но реализовать это не получается. Пробовал делать что-то такое:

    Код (LotusScript):
    Dim arr As Variant
    Dim num As Integer

    arr = Split(str$,";")
    В arr сохранился нужный массив, но тип у него Variant
    Код (LotusScript):
    num = 0 ' счетчик вхождений
    А дальше проблема.
    Код (LotusScript):
    If (в массив сохранилось минимум 2 элемента?) Then
    For i%= 1 To длинна массива
    num = num + 1
    Next
    End If
    Messagebox "Number = "&CStr(num)
    Тут не знаю, как проверить сколько элементов массива загрузилось после Split-а и как получить сам массив из Variant-а. Может кто-то подсказать?
     
  2. nayke

    nayke Well-Known Member

    Регистрация:
    4 авг 2010
    Сообщения:
    310
    Симпатии:
    0
    Код (Text):
    forall el in arr
    num = num + 1
    end forall
     
  3. Omh

    Omh Lotus team
    Lotus team

    Регистрация:
    4 июл 2007
    Сообщения:
    2.210
    Симпатии:
    0
    Код (LotusScript):
    Dim arr As Variant
    Dim num As Integer

    arr = Split(str$,";")
    forall x in arr
    if instr(cstr(x), "a-a") <> 0 then num = num + 1
    end forall
    Добавлено:
    Аррей по дефолту 0-based
     
  4. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.082
    Симпатии:
    300
    я чёта не втупляю, а чё Lbound Ubound отменили?
     
  5. Omh

    Omh Lotus team
    Lotus team

    Регистрация:
    4 июл 2007
    Сообщения:
    2.210
    Симпатии:
    0
    Не отменяли
    Но forall быстрее.
     
  6. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.082
    Симпатии:
    300
    зависит от подхода и задачи ;)
    если вместо тупого перебора возможен алгоритм...
    да и замеров у меня нет - не могу сказать однозначно, просто коды не интересует кол-во и порядок - forall удобнее и нагляднее
     
  7. Omh

    Omh Lotus team
    Lotus team

    Регистрация:
    4 июл 2007
    Сообщения:
    2.210
    Симпатии:
    0
    Тут я согласен ;)
    А то, что быстрее просто читал, сам не тестировал.
     
  8. azzzza

    azzzza Гость

    С forall получилось всё красиво. Спасибо!
     
Загрузка...
Статус темы:
Закрыта.

Поделиться этой страницей