vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#

https://www.vbarchiv.net
Rubrik: Variablen/Strings   |   VB-Versionen: VB2005, VB200830.01.09
StringCount - Zeichen(folge) in einem String zählen

Funktion, die ermittelt wie oft ein beliebiges Zeichen bzw. eine Zeichenfolge in einem String vorkommt. Optional mit oder ohne Berücksichtigung der Groß-/Kleinschreibung.

Autor:   Dieter OtterBewertung:  Views:  34.959 
www.tools4vb.deSystem:  Win2k, WinXP, Win7, Win8, Win10, Win11 Beispielprojekt auf CD 

Nachfolgende Funktion ermittelt, wie oft ein beliebige Zeichen bzw. eine ganze Zeichenfolge in einem String vorkommt. Hierbei kann optional angegeben werden, ob die Groß-/Kleinschreibung berücksichtigt werden soll oder nicht.

''' <summary>
''' Ermittelt die Anzahl gesuchter Zeichen oder Zeichenfolgen innerhalb eines Strings.
''' </summary>
''' <param name="Text">String, der durchsucht werden soll.</param>
''' <param name="Find">Zeichen oder Zeichenfolge, die gesucht wird.</param>
''' <returns>Anzahl Fundstellen</returns>
''' <remarks>Vergleichstyp: StringComparison.InvariantCultureIgnoreCase)</remarks>
Public Function StringCount(ByVal Text As String, ByVal Find As String) As Integer
  Return StringCount(Text, Find, StringComparison.InvariantCultureIgnoreCase)
End Function
''' <summary>
''' Ermittelt die Anzahl gesuchter Zeichen oder Zeichenfolgen innerhalb eines Strings.
''' </summary>
''' <param name="Text">String, der durchsucht werden soll.</param>
''' <param name="Find">Zeichen oder Zeichenfolge, die gesucht wird.</param>
''' <param name="CompareType">Legt fest, ob Groß-/Kleinschreibung berücksichtigt
''' werden soll</param>
''' <returns>Anzahl Fundstellen</returns>
Public Function StringCount(ByVal Text As String, ByVal Find As String, _
  ByVal CompareType As StringComparison) As Integer
 
  ' Wenn Such-String leer, Funktion verlassen
  If IsNothing(Find) OrElse Find.Length = 0 Then Return -1
 
  Dim count As Integer = 0
  Dim pos As Integer = -1
 
  ' Solange nach gesuchtem Zeichen/Zeichenfolge
  ' suchen, bis keine Fundstelle mehr vorhanden
  Do
    pos = Text.IndexOf(Find, pos + 1, CompareType)
    If pos >= 0 Then count += 1
  Loop Until pos < 0
 
  ' Rückgabewert: Anzahl Fundstellen
  Return (count)
End Function

Aufrufbeispiele:

Dim sText As String = "Test-Aufruf"
 
' Rückgabewert ist 2
MsgBox(StrCount(sText, "T"))
 
' Rückgabewert ist 1
MsgBox(StrCount(sText, "T", StringComparison.InvariantCulture)
 
' Rückgabewert ist 0
MsgBox(StrCount(sText, "h"))
 
' Rückgabewert ist -1
MsgBox(StrCount(sText, ""))
Dim sText As String = _
  "Dieter Otter" & vbTab & "info@tools4vb.de" & vbTab & "www.vbarchiv.net"
 
' Rückgabewert ist 2
MsgBox(StrCount(sText, vbTab))



Anzeige

Kauftipp Unser Dauerbrenner!Diesen und auch alle anderen Tipps & Tricks finden Sie auch auf unserer aktuellen vb@rchiv  Vol.6
(einschl. Beispielprojekt!)

Ein absolutes Muss - Geballtes Wissen aus mehr als 8 Jahren vb@rchiv!
- nahezu alle Tipps & Tricks und Workshops mit Beispielprojekten
- Symbol-Galerie mit mehr als 3.200 Icons im modernen Look
Weitere Infos - 4 Entwickler-Vollversionen (u.a. sevFTP für .NET), Online-Update-Funktion u.v.m.
 
 
Copyright ©2000-2024 vb@rchiv Dieter OtterAlle Rechte vorbehalten.


Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.