Гость
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Оператор Like / 8 сообщений из 8, страница 1 из 1
10.07.2014, 13:51
    #38693162
Альтаир
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Оператор Like
Добрый день.
Пытаюсь сделать проверку строки на цифры с помощью оператора like, но проблема в том, что в строке может быть любое количество символов. Можно ли это осуществить одной строкой с помощью like?
if s like "*[0-9]" - так не работает
...
Рейтинг: 0 / 0
10.07.2014, 13:55
    #38693171
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Оператор Like
либо размножить [0-9] на длину строки
либо REPLACE*10 заменить цифры на "" и потом сравнить с ""
либо в цикле
...
Рейтинг: 0 / 0
10.07.2014, 15:28
    #38693374
Альтаир
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Оператор Like
пришлось сделать так
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
Function IsItNumber(ByVal strString As String) As Boolean

'   Функция предназначена для того что бы определить
'   содержит ли строка только цифры, или нет
'
'   Возвращаемые значения
'   True - переданная строка содержит только цифры
'   False - переданная строка пуста,
'           или содержит НЕ только цифры

Dim i As Integer
IsItNumber = False
If strString = "" Then Exit Function
For i = 1 To Len(strString)
    If InStr(1, "0123456789", Mid(strString, i, 1)) = 0 Then
        Exit Function
    End If
Next i
IsItNumber = True
End Function
...
Рейтинг: 0 / 0
10.07.2014, 16:05
    #38693479
HandKot
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Оператор Like
АльтаирДобрый день.
Пытаюсь сделать проверку строки на цифры с помощью оператора like, но проблема в том, что в строке может быть любое количество символов. Можно ли это осуществить одной строкой с помощью like?
if s like "*[0-9]" - так не работает
идти от обратного

Код: sql
1.
if not (s like "*[a-z]*")
...
Рейтинг: 0 / 0
10.07.2014, 20:53
    #38693820
VSVLAD
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Оператор Like
HandKotидти от обратного
Если будут символы "!@#$%.,", не проканает.

А как такой вариант?
Код: vbnet
1.
2.
3.
4.
s = "436435"
sLike = Replace(String(Len(s), "!"), "!", "[0-9]")
    
If s Like sLike Then
...
Рейтинг: 0 / 0
10.07.2014, 22:44
    #38693853
iMrTidy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Оператор Like
Альтаир,

А почему не подходит?

Код: vbnet
1.
IsNumeric(str)
...
Рейтинг: 0 / 0
11.07.2014, 00:38
    #38693907
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Оператор Like
iMrTidyА почему не подходит?
Код: vbnet
1.
2.
3.
4.
?IsNumeric("1E1")
True
?IsNumeric("&H0")
True
...
Рейтинг: 0 / 0
11.07.2014, 08:05
    #38693959
HandKot
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Оператор Like
VSVLADHandKotидти от обратного
Если будут символы "!@#$%.,", не проканает.

почему же. поправим паттерн

Код: vbnet
1.
2.
3.
4.
    Dim s As String
    
    s = "123!"
    Debug.Print Not (s Like "*[!0-9]*")
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Оператор Like / 8 сообщений из 8, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]