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 :

Zurück zur Übersichtsseite