Rubrik: Variablen/Strings · String-Operationen | VB-Versionen: VB6 | 04.11.03 |
Zeichenfolge in einem String zählen Ermittelt wie oft ein beliebiger String in einen anderen beliebigen String vorkommt. Sowohl Case sensitiv oder ohne Case sensitiv. | ||
Autor: Philipp Heinze | Bewertung: | Views: 14.214 |
www.phsoftware.de | System: Win9x, WinNT, Win2k, WinXP, Win7, Win8, Win10, Win11 | Beispielprojekt auf CD |
Nachfolgender Code ermittelt, wie oft in einem Text ein beliebiger anderer String vorkommt. Hierbei kann sowohl die Berücksichtigung der exakten Groß-/Kleinschreibung sowohl aktiviert, als auch deaktiviert werden.
Private Function CountSigns(ByVal sText As String, _ ByVal sFindThis As String, _ Optional ByVal bCaseSensitiv As Boolean = False) As Long ' Ist ein Such-String angegeben? If Len(sFindThis) = 0 Then CountSigns = -1: Exit Function Dim nSigns As Long Dim nSearchLen As Long ' Ermitteln der Textlänge, sowie der Suchtextlänge nSigns = Len(sText) nSearchLen = Len(sFindThis) If bCaseSensitiv then ' exakte Groß-/Kleinschreibung berücksichtigen ' Such-Zeichenfolge aus dem Originalstring löschen sText = Replace(sText, sFindThis, "") Else ' Groß-/Kleinschreibung unbeachtet lassen ' Such-Zeichenfolge aus dem Originalstring löschen sText = Replace(LCase$(sText), LCase$(sFindThis), "") End If ' Länge des Originalstrings abzgl. Länge des modifizierten ' Strings dividiert durch die Länge des Suchstrings, ' ergibt die Anzahl der Fundstellen CountSigns = (nSigns - Len(sText)) / nSearchLen End Function
Beispiel für den Aufruf:
Dim sText as String sText = "Test Aufruf" MsgBox sText, "T" ' Rückgabewert ist 2 MsgBox sText, "T", True ' Rückgabewert ist 1 MsgBox sText, "h" ' Rückgabewert ist 0 MsgBox sText, "" ' Rückgabewert ist -1