Comando SET EXACT
Especifica as regras para comparar duas cadeias de caracteres de comprimentos diferentes.
Sintaxe
SET EXACT ON | OFF
Argumentos
ATIVADO
Especifica que as expressões devem corresponder ao caractere para que o caractere seja equivalente. Todos os espaços em branco à direita nas expressões são ignorados para a comparação. Para a comparação, o menor das duas expressões é preenchido à direita com espaços em branco para corresponder ao comprimento da expressão mais longa.
OFF
(Padrão.) Especifica que, para serem equivalentes, as expressões devem corresponder caractere para caractere até que o final da expressão no lado direito seja atingido.
Comentários
A configuração SET EXACT não terá efeito se ambas as cadeias de caracteres tiverem o mesmo comprimento.
Comparações de cadeia de caracteres
O Visual FoxPro tem dois operadores relacionais que testam a igualdade.
O operador = executa uma comparação entre dois valores do mesmo tipo. Esse operador é adequado para comparar dados lógicos, numéricos, de data e de caracteres.
No entanto, quando você compara expressões de caractere com o operador =, os resultados podem não ser exatamente o que você espera. As expressões de caractere são comparadas caractere para caractere da esquerda para a direita até que uma das expressões não seja igual à outra, até que o final da expressão no lado direito do operador = seja atingido (SET EXACT OFF) ou até que as extremidades de ambas as expressões sejam atingidas (SET EXACT ON).
O operador == pode ser usado quando uma comparação exata de dados de caracteres é necessária. Se duas expressões de caracteres forem comparadas com o operador == , as expressões em ambos os lados do operador == deverão conter exatamente os mesmos caracteres, incluindo espaços em branco, para serem consideradas iguais. A configuração SET EXACT é ignorada quando cadeias de caracteres são comparadas usando ==.
A tabela a seguir mostra como a escolha do operador e a configuração SET EXACT afetam as comparações. (Um sublinhado representa um espaço em branco.)
Comparação | = EXACT OFF | = EXACT ON | == EXACT ON ou OFF |
---|---|---|---|
"abc" = "abc" | Corresponder a | Corresponder a | Corresponder a |
"ab" = "abc" | Nenhuma correspondência | Nenhuma correspondência | Nenhuma correspondência |
"abc" = "ab" | Corresponder a | Nenhuma correspondência | Nenhuma correspondência |
"abc" = "ab_" | Nenhuma correspondência | Nenhuma correspondência | Nenhuma correspondência |
"ab" = "ab_" | Nenhuma correspondência | Corresponder a | Nenhuma correspondência |
"ab_" = "ab" | Corresponder a | Corresponder a | Nenhuma correspondência |
"" = "ab" | Nenhuma correspondência | Nenhuma correspondência | Nenhuma correspondência |
"ab" = "" | Corresponder a | Nenhuma correspondência | Nenhuma correspondência |
"__" = "" | Corresponder a | Corresponder a | Nenhuma correspondência |
"" = "___" | Nenhuma correspondência | Corresponder a | Nenhuma correspondência |
TRIM("___") = "" | Corresponder a | Corresponder a | Corresponder a |
"" = TRIM("___") | Corresponder a | Corresponder a | Corresponder a |