Как проверить, содержит ли символьное выражение «*» в начале текста, используя функцию like - PullRequest
0 голосов
/ 02 марта 2020
cFilterprodname=upper(thisform.textbox1.text)

IF LIKE('*'+"%",cFilterprodname)=.T.
        MESSAGEBOX("* found in the beginning")
ELSE
        MESSAGEBOX("* not found in the beginning")
ENDIF 

Это код, который я пробовал, и он переходит к блоку else, даже если в начале у него есть '*'. Кто-нибудь может мне помочь?

1 Ответ

2 голосов
/ 02 марта 2020

Это не так, как работает функция LIKE. Во-первых, '*' - это подстановочный знак, соответствующий любому количеству символов, поэтому он не будет совпадать с символом.

Во-вторых, из файла справки:

cExpression2 должен совпадать с буквой cExpression1 для буквы, чтобы LIKE () мог возвращать true (.T.).

Если вы хотите проверить, является ли первый символ '*', это будет работать и должно быть легче для понимания.

IF LEFT(cFilterprodname, 1) == "*"
        MESSAGEBOX("* found in the beginning")
ELSE
        MESSAGEBOX("* not found in the beginning")
ENDIF 
...