Diese Funktion zählt die Anzahl eines Strings innerhalb eines anderen Strings. Dies ist eine sehr schnelle und speicherfreundliche Methode.
Man könnte das ganze auch einfacher machen, indem man einfach die Split Funktion benutzt und dann die länge des resultierenden Arrays ausließt. Das dauert aber bei großen Strings (z.B. große Textdateien) dann länger und es brauch mehr Speicher.
''' <summary>
''' Diese Funktion zählt die Anzahl eines Strings innerhalb eines anderen Strings
''' </summary>
''' <param name="Expression">Der String in dem gesucht werden soll</param>
''' <param name="FindWhat">Der String nach dem gesucht werden soll</param>
''' <param name="CompareMethod">Gibt die Vergleichsmethode an, Binary ist CaseSensitive</param>
Public Function CountString(ByVal Expression As String, ByVal FindWhat As String, Optional ByVal CompareMethod As Microsoft.VisualBasic.CompareMethod = CompareMethod.Text) As Long
Dim Count As Long = 0
Dim CurrPos As Long = 0
Dim OldPos As Long = 0
Dim FindWhatLen As Integer = FindWhat.Length
Dim StepLen As Integer = 1
Do
CurrPos = InStr(CurrPos + StepLen, Expression, FindWhat, CompareMethod)
If CurrPos <> OldPos And CurrPos <> 0 Then
Count += 1
OldPos = CurrPos
StepLen = FindWhatLen
Else
Exit Do
End If
Loop
Return Count
End Function
1 Kommentare zum Snippet