Compartilhar via


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

Consulte Também

Comando SET ANSI