|
Тема |
Re: проверка на входящи данни [re: Sargonlll] |
|
Автор |
nedoga (непознат
) |
|
Публикувано | 24.10.12 21:08 |
|
|
За разлика от по-старите версии на VB, новите такива вече не позволяват неявно конвертиране на типове. Т.е. не може да се присвои текст директно на числова променлива, дори и да съдържа само цифри и обратното. Също така се получава грешка при конвентирането на текст в число, когато текста не представлява валидно число. Най-добре направи цикъл, който извлича отделните символи от текста и проверява дали са цифри, ",", "." "+", "-" или евентуално "E" ако числата са с плаваща запетая. Можеш да използваш функцията Asc() за да извлечеш ASCII кода на символа . Нещо подобно на
Private Function CheckText(Text As String) As Boolean
Dim I As Long, N As Long, A As Long
N = Len(Text)
For I = 1 To N
A = Asc(Mid$(Text, I, 1))
If A < 43 Or A > 57 Or A = 47 Then
CheckText= False
Exit Function
End If
Next I
CheckText= True
End Function
Една такава проверка би могла дори да връща точно къде е грешката и дори да маркира некоректния символ в текстовото поле за да може потребителя лесно да го види и изтрие. Ето ти едно допълнително удобство.
Редактирано от nedoga на 24.10.12 21:09.
|
| |
|
|
|