Подсчитать количество повторов искомого текста в другом тексте — Visual Basic(Бейсик)

Для того, чтобы определить сколько раз встречается в нужной строке искомый текст, который может быть как отдельным символом, так и набором символов, можно использовать любую из двух нижеприведенных функций. Причём, при подсчёте Вы можете также задать и способ сравнения, так, например, в первом примере демонстрирующем вызов функции, регистр символов учитывается, а во втором примере, соответственно, не учитывается.

Private Function CountRepeat&(Text$, Search$, _
    Optional Register As Boolean = True)
    ' MS Excel 95, 97, 2000, XP, ...
    If Register = True Then
       CountRepeat& = Len(Text$) - _
       Len(Application.Substitute(Text$, Search$, ""))
    Else
       CountRepeat& = Len(Text$) - _
       Len(Application.Substitute(LCase(Text$), LCase(Search$), ""))
    End If
End Function
 
Private Sub Test()
    iResult1 = _
    CountRepeat("ТЕКСТ, содержащий различные СИМВОЛЫ", "о")
 
    iResult2 = _
    CountRepeat("ТЕКСТ, содержащий различные СИМВОЛЫ", "о", False)
End Sub

Private Function CountRepeat&(Text$, Search$, _
    Optional CompareMethod& = vbBinaryCompare)
    ' MS Excel 2000, XP, ...
    CountRepeat& = Len(Text$) - _
    Len(Replace(Text$, Search$, "", , , CompareMethod&))
End Function
 
Private Sub Test()
    iResult1 = _
    CountRepeat("ТЕКСТ, содержащий различные СИМВОЛЫ", "о")
 
    iResult2 = _
    CountRepeat("ТЕКСТ, содержащий различные СИМВОЛЫ", "о", vbTextCompare)
End Sub

Leave a Comment