Compartilhar via


Comando SET EXACT

Especifica as regras para comparar duas cadeias de caracteres de comprimentos diferentes.

Sintaxe

  
SET EXACT ON | OFF  

Argumentos

LIGADO
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 é adicionado à direita com espaços em branco para corresponder ao comprimento da expressão mais longa.

DESLIGADO
(Padrão.) Especifica que, para serem equivalentes, as expressões devem corresponder ao caractere para o caractere até que o final da expressão no lado direito seja atingido.

Observações

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, numéricos e de data.

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 com o 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 alcançadas (SET EXACT ON).

O operador == pode ser usado quando uma comparação exata de dados de caractere é necessária. Se duas expressões de caractere 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 = EXATAMENTE DESATIVADO = EXATO EM == EXATA ATIVADA OU DESATIVADA
"abc" = "abc" Partida Partida Partida
"ab" = "abc" Nenhuma correspondência Nenhuma correspondência Nenhuma correspondência
"abc" = "ab" Partida Nenhuma correspondência Nenhuma correspondência
"abc" = "ab_" Nenhuma correspondência Nenhuma correspondência Nenhuma correspondência
"ab" = "ab_" Nenhuma correspondência Partida Nenhuma correspondência
"ab_" = "ab" Partida Partida Nenhuma correspondência
"" = "ab" Nenhuma correspondência Nenhuma correspondência Nenhuma correspondência
"ab" = "" Partida Nenhuma correspondência Nenhuma correspondência
"__" = "" Partida Partida Nenhuma correspondência
"" = "___" Nenhuma correspondência Partida Nenhuma correspondência
TRIM("___") = "" Partida Partida Partida
"" = TRIM("___") Partida Partida Partida

Consulte Também

Comando SET ANSI