Visual Basic - Technik, FAQ, Tricks, Beispiele

Home / Daten / Strings / Filter

Ungültige Zeichen ausfiltern

Mit der unten stehenden Funktion ist es möglich, einen String auf (un)gültige Zeichen zu untersuchen. Dabei sind beide Varianten möglich:
  1. Es werden nur alle gültigen Zeichen durchgelassen (PassThru = True).
  2. Es werden alle ungültigen Zeichen entfernt (PassThru = False, Standard).
Außerdem kann noch definiert werden, ob Groß-/Kleinschreibung unterschieden werden soll.
Public Const cLetters = "abcdefghijklmnopqrstuvwxyz"
Public Const cNumbers = "0123456789"
Public Const cWhiteSpaces = " " & vbCr & vbLf & vbTab

Public Function Filter( _
    ByVal Text As String, _
    ByVal Chars As String, _
    Optional ByVal PassThru As Boolean = False, _
    Optional ByVal Compare As VbCompareMethod = vbTextCompare _
    ) As String
  Dim i As Long
  
  If PassThru Then
    'Nur angegebene Zeichen durchlassen:
    For i = 1 To Len(Text)
      If InStr(1, Chars, Mid$(Text, i, 1), Compare) Then
        Filter = Filter & Mid$(Text, i, 1)
      End If
    Next i
  Else
    'Angegebene Zeichen entfernen:
    For i = 1 To Len(Text)
      If InStr(1, Chars, Mid$(Text, i, 1), Compare) = 0 Then
        Filter = Filter & Mid$(Text, i, 1)
      End If
    Next i
  End If
End Function
Die angegebenen Konstanten sind nur eine Erleichterung im Umgang mit der Filter-Funktion. Hier ein paar Beispiele:
?Filter("512 Bücher", cNumbers & cWhiteSpaces)
--> "Bücher"

?Filter("512 Bücher", cNumbers, True)
--> "512"

© Jost Schwider, 13.09.2000-13.09.2000 - http://vb-tec.de/strfiltr.htm