vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
SEPA-Dateien erstellen inkl. IBAN-, BLZ-/Kontonummernprüfung  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück
Rubrik: Variablen/Strings · String-Operationen   |   VB-Versionen: VB4, VB5, VB620.11.02
String auf bestimmtes Format prüfen

Eine kleine Funktion, mit der sich eine Eingabe auf ein ganz bestimmtes Format hin prüfen lässt.

Autor:   Dominik HufnagelBewertung:     [ Jetzt bewerten ]Views:  30.441 
www.homedomsoftware.deSystem:  Win9x, WinNT, Win2k, WinXP, Win7, Win8, Win10, Win11 Beispielprojekt auf CD 

Sicherlich kennen Sie das MaskEdit-Eingabecontrol. Mit diesem Control ist es möglich, eine "maskierte" Eingabe zu erzwingen, d.h. Sie geben eine bestimmte Formatmaske vor, die der Anwender einhalten muss. Eine solche Vorgabe kann z.B. wie folgt aussehen:

## / ##

# steht hier für eine Zahlen-Eingabe (also nur Ziffern von 0 bis 9). Ein & steht z.B. für die Eingabe eines alphanumerischen Zeichens, quasi alle Buchstaben plus Sonderzeichen und natürlich Ziffern. Alle anderen Zeichen in der Vorgabe sind konstante Zeichen, d.h. diese Zeichen werden bereits vorgegeben und während der Eingabe autom. übersprungen.

Soll nun ein beliebiger Text (String) auf ein bestimmtes Format hin geprüft werden, brauchen Sie nicht extra ein MaskEdit-Control zu verwenden. Nein, vielmehr proggen wir uns eine kleine Funktion

Public Function CheckInputMask( _
  ByVal sInput As String, _
  ByVal sMask As String) As Boolean
 
  Dim bResult As Boolean
  Dim i As Integer
 
  ' Eingabe auf bestimmtes Format hin prüfen
  bResult = False
 
  If Len(sInput) = Len(sMask) Then
    ' Länge passt schon einmal
    For i = 1 To Len(sMask)
      Select Case Mid$(sMask, i, 1)
        Case "#"
          ' numerisches Zeichen erwartet
          bResult = IsNumeric(Mid$(sInput, i, 1))
 
        Case "&"
          ' alphanumerisches Zeichen
          bResult = True
 
        Case Else
          ' sonst. Zeichen
          bResult = (Mid$(sInput, i, 1) = Mid$(sMask, i, 1) )
      End Select
 
      ' Unstimmigkeit gefunden?
      If Not bResult Then Exit For
    Next i    
  End If
 
  CheckInputMask = bResult
End Function

Was macht die Funktion genau?

Zunächst wird die Länge des Strings mit der vorgegebenen Länge der "Maske" verglichen. Ist die Länge gleich wird anschließend Zeichen für Zeichen geprüft, wobei für ein #-Platzhalter immer eine Ziffer und für das &-Zeichen immer ein beliebiges Zeichen stehen darf. Für alle anderen Zeichen in der Vorgabemaske gilt: diese Zeichen müssen an exakt der gleichen Position im zu prüfenden String stehen.

Die Funktion gibt den Wert True zurück, wenn der String der Vorgabemaske entspricht - andernfalls False.

Anwendungsbeispiele:

' Lizenznummer: Format ####-####-####-####
bResult = CheckInputMask(Text1.Text, _
  "####-####-####-####")
' Uhrzeit
bResult = CheckInputMask(Text1.Text, "##:##")
' Format ##-&& Z #0
Dim sText As String
sText = "99-AB Z 70"
bResult = CheckInputMask(sText, "##-&& Z #0")
 
' falsch wäre...
sText = "99-AB C 70"
 
' auch falsch...
sText = "A9-78 Z 00"

Dieser Tipp wurde bereits 30.441 mal aufgerufen.

Voriger Tipp   |   Zufälliger Tipp   |   Nächster Tipp

Über diesen Tipp im Forum diskutieren
Haben Sie Fragen oder Anregungen zu diesem Tipp, können Sie gerne mit anderen darüber in unserem Forum diskutieren.

Neue Diskussion eröffnen

nach obenzurück


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.
 
   

Druckansicht Druckansicht Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle 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.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel