Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Пароль / 5 сообщений из 5, страница 1 из 1
12.05.2007, 18:08
    #34521110
nbv
nbv
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пароль
x = thisform.txtPass_.text
IF x = Thisform.edit1.value AND thisform.combo2.Value='Admin' then
DO c:\1\program1.prg
_screen.Caption='"ПРОГА'
THISFORM.Release
Else и тд

Всё работает как надо но если не вводить нечего в edit1(оставить пустым) то program1.prg запускается
...
Рейтинг: 0 / 0
12.05.2007, 18:23
    #34521125
BAtyr Abdikayimov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пароль
тут думаю надо указать значение по умолчание комбо
...
Рейтинг: 0 / 0
12.05.2007, 18:26
    #34521126
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пароль
Поставь IF x == Thisform.edit1.value
== возвращает .t. только при полном совпадении, а = в зависимости от SET EXACT
...
Рейтинг: 0 / 0
12.05.2007, 18:53
    #34521150
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пароль
При настройке

SET EXACT OFF

это значение по умолчанию. Сравнение с пустой строкой всегда вернет истину, поскольку сравнение идет до истечения символов в строке, расположенной справа от оператора сравнения. Необходимо либо использовать символ тождественного равенства, либо дополнить сравниваемые величины до одной длины концевыми пробелами, либо изменить настройку SET EXACT (хотя это не есть хорошо)

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
clear
SET EXACT OFF  && это настройка по умолчанию
?"================="
?"SET EXACT OFF"
?["admin" = "" = ],"admin" = ""
?["admin" = "adm" = ],"admin" = "adm"
?["adm" = "admin" = ],"adm" = "admin"
?["admin" = "admin" = ],"admin" = "admin"
?"================="
?"дополняю пробелами"
?[PADR("admin", 10 )=PADR("", 10 ) = ],PADR("admin", 10 )=PADR("", 10 )
?[PADR("admin", 10 )=PADR("adm", 10 ) = ],PADR("admin", 10 )=PADR("adm", 10 )
?[PADR("adm", 10 )=PADR("admin", 10 ) = ],PADR("adm", 10 )=PADR("admin", 10 )
?[PADR("admin", 10 )=PADR("admin", 10 ) = ],PADR("admin", 10 )=PADR("admin", 10 )
?"================="
?"тождественное равенство"
?["admin" == "" = ],"admin" == ""
?["admin" == "adm" = ],"admin" == "adm"
?["adm" == "admin" = ],"adm" == "admin"
?["admin" == "admin" = ],"admin" == "admin"
?"================="
SET EXACT ON
?"================="
?"SET EXACT ON"
?["admin" = "" = ],"admin" = ""
?["admin" = "adm" = ],"admin" = "adm"
?["adm" = "admin" = ],"adm" = "admin"
?["admin" = "admin" = ],"admin" = "admin"

Какой способ выбрать зависит от того, откуда берется текст для сравнения. Есть ли концевые пробелы. Возможно, потребуется их отсечение по Alltrim().
...
Рейтинг: 0 / 0
12.05.2007, 20:21
    #34521204
nbv
nbv
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пароль
Всем бальшое спасибо
Особенно вам ВладимирМ
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Пароль / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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