powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Помогите ламеру
11 сообщений из 11, страница 1 из 1
Помогите ламеру
    #34218046
VINNI5898
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Народ помогите плиз. Как проверить строку из цифр, чтобы она была ПОЛОЖИТЕЛЬНЫМ ЦЕЛЫМ ЧИСЛОМ? Строка состоит из двух частей, разделенных пробелом. Например: '63 345863476'. Нужно 2 запроса: два символа до пробела и неизвестное количество после проверить на соответствие этому условию. Заранее спасибо!
...
Рейтинг: 0 / 0
Помогите ламеру
    #34218105
alex11100
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
смотрите недопустимость в строке
символов - , .

lcStr = '45 4555555'
if at('-',lcStr)>0 or at(....
...
endif
...
Рейтинг: 0 / 0
Помогите ламеру
    #34218160
Denver
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
st = '9999 99999999'
val1 = val(substr(st,1,at(' ',st,1)-1)) && до пробела
val2 = val(substr(st,at(' ',st,1)+1,len(st) - len(st1))) && после пробела

Затем сравниваешь val1 и val2 c 0
...
Рейтинг: 0 / 0
Помогите ламеру
    #34218164
VINNI5898
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Мне немного не так надо... И к тому же там кроме символов -,. могут быть и буквы. У меня есть код этого алгоритма на T-SQL, но в фоксе он не работает:
SELECT * FROM L WHERE
REVERSE(SUBSTRING(REVERSE(LTRIM(RTRIM(SN_LR))), CHARINDEX(' ', REVERSE(LTRIM(RTRIM(SN_LR))), 1) + 1, LEN(LTRIM(RTRIM(SN_LR))))) NOT IN (“50”,”5006”)
(проверка символов до пробела) и

SELECT * FROM L WHERE ISNUMERIC
(REVERSE(SUBSTRING(REVERSE(LTRIM(RTRIM(SN_LR))), 1, CHARINDEX(' ',REVERSE(LTRIM(RTRIM(SN_LR))), 1) -1))) = 0

это после пробела. Вобщем то по большому счету мне нужно это перевести в тот синтаксис, чтобы он работал в фоксе. Вот. Или если есть документация или ссылка по различиям синтаксиса T-SQL и фокса - буду очень благодарен! :-)
...
Рейтинг: 0 / 0
Помогите ламеру
    #34218242
Denver
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
VINNI5898
Как проверить строку из цифр, чтобы она была ПОЛОЖИТЕЛЬНЫМ ЦЕЛЫМ ЧИСЛОМ?
Мне немного не так надо... И к тому же там кроме символов -,. могут быть и буквы.)

Т.е. тебе надо исключить все буквы, а число сравнивать с нулем?
...
Рейтинг: 0 / 0
Помогите ламеру
    #34218299
VINNI5898
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
мне надо: если в этой символьной строке есть любой символ НЕ ЦИФРА, выбрать эту строку (все поля). Т.е. это все должно делаться в SELECT ... INTO CURSOR
...
Рейтинг: 0 / 0
Помогите ламеру
    #34218412
Maltsev Max
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Select * from MyTable Where Len(AllTrim(ChrTran(MyField, '0123456789', ' ')))>0
...
Рейтинг: 0 / 0
Помогите ламеру
    #34218419
Maltsev Max
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Блин, не наглядно получилось ....

Код: plaintext
1.
Select * from MyTable Where Len(AllTrim(ChrTran(MyField, '0123456789', '          ')))> 0 
...
Рейтинг: 0 / 0
Помогите ламеру
    #34218643
VINNI5898
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 Maltsev Max:
очень оригинально, но все работает! :-) Спасибо большое!
...
Рейтинг: 0 / 0
Помогите ламеру
    #34219809
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Maltsev Max
Код: plaintext
1.
Select * from MyTable Where Len(AllTrim(ChrTran(MyField, '0123456789', '          ')))> 0 


Какой смысл заменять на пробелы, если ты потом их все-равно исключаешь? Проще делать замену на пустую строку, добавив в список исключаемых символов собственно пробел.

Код: plaintext
1.
Select * from MyTable Where Len(ChrTran(MyField, ' 0123456789', '')))> 0 

Поскольку задача стоит найти все строки, где есть символ отличный от цифры и пробела , то такая замена должна сработать.

Можно еще сравнить через EMPTY(). В этом случае пробел можно оставить и не исключать из строки

Код: plaintext
1.
Select * from MyTable Where EMPTY(ChrTran(MyField, '0123456789', ''))) = .F.
...
Рейтинг: 0 / 0
Помогите ламеру
    #34222032
Maltsev Max
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ВладимирМ

Какой смысл заменять на пробелы, если ты потом их все-равно исключаешь? Проще делать замену на пустую строку, добавив в список исключаемых символов собственно пробел.



Это уже тонкости, просто у меня в подобной задаче не допускалось использование даже пробела.
И запрос выглядел примерно так:
Код: plaintext
1.
Select * from MyTable Where Len(AllTrim(ChrTran(MyField, ' 0123456789', '_          ')))> 0 
Я его просто почистил ...

Так что не держи зла !! :-))

Всех с наступающим НГ !!!
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Помогите ламеру
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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