VB-Homepage Tipp 397 |
Werteprüfung via API Groß- und Kleinbuchstaben, Sonderzeichen, Ziffern |
Zum Überprüfen von Werten gibt es ja in VB einige
Funktionen, so kann zBsp. über IsNumeric(Wert) = True Then .... geprüft werden, ob es sich um einen Zahlenwert handelt. Einige weitere Tipps dazu Außerdem läßt sich auch der ASCII Wert eines Zeichens auswerten, um zu ermitteln, um was es sich handelt. Eine weitere Möglichkeit möchte ich Ihnen nun hier vorstellen. Es handelt sich um vier API Funktionen, mit den ermittelt werden kann, um welche Art Zeichen es sich handelt. Unterschieden wird hierbei zwischen Kleinbuchstaben, Großbuchstaben , Sonderzeichen und Ziffern. Die API Funktionen Private Declare Function IsCharAlpha Lib "user32" Alias "IsCharAlphaA" ( _ ByVal cChar As Byte) _ As Long Private Declare Function IsCharAlphaNumeric Lib "user32" Alias "IsCharAlphaNumericA" ( _ ByVal cChar As Byte) _ As Long Private Declare Function IsCharLower Lib "user32" Alias "IsCharLowerA" ( _ ByVal cChar As Byte) _ As Long Private Declare Function IsCharUpper Lib "user32" Alias "IsCharUpperA" ( _ ByVal cChar As Byte) _ As Long Die Auswertung In unserem Beispiel soll immer das letzte Zeichen einer Eingabe in einer Textbox ausgewertet werden.Sie müssen also, um das Beispiel nachzuvollziehen, eine Textbox zur Eingabe (Text1) und ein Label zur Auswertung (Label1) auf Ihrer Form platzieren. Fügen Sie dann folgenden Code in die Change Methode der Textbox ein. Text1_Change() Dim Zeichen As Byte On Error GoTo Errorhandler 'Umwandeln des Wertes Zeichen = Asc(Right(Text1.Text, 1)) 'Kleinbuchstabe If IsCharAlpha(Zeichen) <> 0 And IsCharAlphaNumeric(Zeichen) <> 0 And IsCharLower(Zeichen) <> 0 Then Label1.Caption = "letztes Zeichen ist ein Kleinbuchstabe" 'Großbuchstabe If IsCharAlpha(Zeichen) <> 0 And IsCharAlphaNumeric(Zeichen) <> 0 And IsCharUpper(Zeichen) <> 0 Then Label1.Caption = "letztes Zeichen ist ein Großbuchstabe" 'Sonderzeichen If IsCharAlpha(Zeichen) = 0 And IsCharAlphaNumeric(Zeichen) = 0 Then Label1.Caption = "letztes Zeichen ist ein Sonderzeichen" 'Zahl If IsCharAlpha(Zeichen) = 0 And IsCharAlphaNumeric(Zeichen) <> 0 Then Label1.Caption = "letztes Zeichen ist eine Zahl" Exit Sub Errorhandler: Label1.Caption = "" Starten Sie nun Ihr Projekt, wird immer das letzte Zeichen der Eingabe ausgewertet. Ggf. kann dann anstatt der Anzeige der Auswertung, eine Differenzierung nach gültigen Werten erfolgen. Dann sollten Sie die Anweisungen aber in die KeyPress Methode auslagern, da Sie dort den Ascii Wert auf 0 setzen können und so keine Ausgabe des Zeichens erfolgt. Ein bisschen Umstrickerei bleibt Ihnen aber nicht erspart, da Sie dann nicht auf das letzte Zeichen der Textbox zurückgreifen können, denn dieses existiert zu diesem Zeitpunkt noch nicht. |
Tipp-Download |
Quelle : |