Funkce:
'Vrací True,
pokud je znak v zadané kategorii'
'Hodnoty parametru CHARTYPE
' 1 = [A-Z]
' 2 = [a-z]
' 3 = [A-Z,a-z]
' 4 = [0-9]
' 7 = [0-9,A-Z,a-z]
' 8 = [0-9,.+-]
' 16 = Hexadecimální čísla
[0-9,A-F,a-f]
' 32 = bílé mezery [Chr(0,8,10,13,32)]
' 64 = [.,;:?!-'(){}{}]
Function IsCharType(Char As
String, ByVal CharType As Integer) As Boolean
Static cTypes(0 To 255) As Integer
If cTypes(0) = 0 Then
Dim i As Integer, v As Variant
For i = 65 To 90: cTypes(i) = 1:
Next
For i = 97 To 122: cTypes(i) = 2:
Next
For i = 40 To 57: cTypes(i) = 4 +
8 + 16: Next
cTypes(Asc("+")) = 8
cTypes(Asc("-")) = 8
cTypes(Asc(Format$(0.1,
"."))) = 8
For Each v In Array(65, 66, 67,
68, 69, 70, 97, 98, 99, 100, 101, 102)
cTypes(v)
= cTypes(v) Or 16
Next
For Each v In Array(0, 9, 10, 13,
32)
cTypes(v)
= cTypes(v) Or 32
Next
For Each v In Array(46, 44, 59,
58, 63, 33, 45, 39, 40, 41, 123, 125)
cTypes(v)
= cTypes(v) Or 64
Next
End If
IsCharType = (cTypes(Asc(Char)) And CharType)
End Function
|