powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / получить вхождение подстроки №N?
9 сообщений из 9, страница 1 из 1
получить вхождение подстроки №N?
    #35135070
Фотография Фрилансер
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
можно ли как-то, кроме рекурсивного instr, получить вхождение подстроки А в Б с определенным номером?

т.е.
Код: plaintext
1.
2.
s1="mama.mama.moma.bla-bla-bla"
'нужно как-то получить точку перед мома, а будет - перед мама (первая)
iPlace= instr(s1,".")
...
Рейтинг: 0 / 0
получить вхождение подстроки №N?
    #35135206
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Во-первых Instr самая быстрая функция для таких целей, во-вторых это можно сделать в цикле без рекурсии.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Function SuperInstr(strSource as String, strFind as String, Index as Integer) as Long
dim x as Long
dim y as Integet
    On error Goto errh
    while y<>Index
        x=Instr(x+ 1 ,strSource,strFind)
        y = y +  1 
    Wend
    SuperInstr = x
errh:
End Function
...
Рейтинг: 0 / 0
получить вхождение подстроки №N?
    #35135309
Фотография Фрилансер
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
т.е. без цикла и без рекурсии никак?
некрасиво выходит...
...
Рейтинг: 0 / 0
получить вхождение подстроки №N?
    #35135399
FAndrew
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Фрилансерт.е. без цикла и без рекурсии никак?
некрасиво выходит...
А чего это вдруг рекурсия стала не красивой?
...
Рейтинг: 0 / 0
получить вхождение подстроки №N?
    #35135586
vkodor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
Sub f()
    s1 = "mama.mama.moma.bla-bla-bla"
    a = Split(s1, ".")
    b = a(UBound(a))
    C = Len(s1) - Len(b)
End Sub
...
Рейтинг: 0 / 0
получить вхождение подстроки №N?
    #35135589
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Фрилансерт.е. без цикла и без рекурсии никак?
некрасиво выходит...Вам шашечки или ехать?
...
Рейтинг: 0 / 0
получить вхождение подстроки №N?
    #35136715
Deggasad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
x = "mama.mama.moma.bla-bla-bla"
y = InStr(1, Application.Substitute(x, ".", "|", 2), "|")
Debug.Print y
...
Рейтинг: 0 / 0
получить вхождение подстроки №N?
    #35136716
Deggasad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Deggasad
Код: plaintext
1.
2.
x = "mama.mama.moma.bla-bla-bla"
    y = InStr( 1 , Application.Substitute(x, ".", "|",  2 ), "|")
    Debug.Print y
...
Рейтинг: 0 / 0
получить вхождение подстроки №N?
    #35136798
Фотография Worobjoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Надо регулярные выражения применять если не хотите изобретать велосипед.

Код: plaintext
1.
2.
3.
   Dim R As New VBScript_RegExp_55.RegExp
   R.Global = True
   R.Pattern = "\."
   Debug.Print "Позиция второй точки =" & R.Execute("mama.mama.moma.bla-bla-bl")( 1 ).FirstIndex
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / получить вхождение подстроки №N?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]