Comando exacto de conjunto
Especifica las reglas para comparar dos cadenas de longitudes diferentes.
Sintaxis
SET EXACT ON | OFF
Argumentos
ACTIVAR
Especifica que las expresiones deben coincidir con el carácter para que el carácter sea equivalente. Los espacios en blanco finales de las expresiones se omiten para la comparación. Para la comparación, el más corto de las dos expresiones se rellena a la derecha con espacios en blanco para que coincidan con la longitud de la expresión más larga.
Apagado
(Valor predeterminado). Especifica que, para ser equivalente, las expresiones deben coincidir con el carácter para el carácter hasta que se alcance el final de la expresión en el lado derecho.
Comentarios
La configuración SET EXACT no tiene ningún efecto si ambas cadenas tienen la misma longitud.
Comparaciones de cadenas
Visual FoxPro tiene dos operadores relacionales que comprueban la igualdad.
El operador = realiza una comparación entre dos valores del mismo tipo. Este operador es adecuado para comparar datos lógicos, numéricos, numéricos y lógicos.
Sin embargo, al comparar expresiones de caracteres con el operador = , es posible que los resultados no sean exactamente lo que espera. Las expresiones de caracteres se comparan con caracteres de izquierda a derecha hasta que una de las expresiones no es igual a la otra, hasta que se alcanza el final de la expresión en el lado derecho del operador = (SET EXACT OFF), o hasta que se alcanza el final de ambas expresiones (SET EXACT ON).
El operador == se puede usar cuando se necesita una comparación exacta de datos de caracteres. Si se comparan dos expresiones de caracteres con el operador ==, las expresiones de ambos lados del operador == deben contener exactamente los mismos caracteres, incluidos los espacios en blanco, para considerarse iguales. La configuración SET EXACT se omite cuando se comparan cadenas de caracteres mediante ==.
En la tabla siguiente se muestra cómo afecta la elección del operador y la configuración SET EXACT a las comparaciones. (Un carácter de subrayado representa un espacio en blanco).
De comparación | = EXACT OFF | = ON EXACTO | == ON o OFF EXACTOS |
---|---|---|---|
"abc" = "abc" | Match | Match | Match |
"ab" = "abc" | Ninguna coincidencia | Ninguna coincidencia | Ninguna coincidencia |
"abc" = "ab" | Match | Ninguna coincidencia | Ninguna coincidencia |
"abc" = "ab_" | Ninguna coincidencia | Ninguna coincidencia | Ninguna coincidencia |
"ab" = "ab_" | Ninguna coincidencia | Match | Ninguna coincidencia |
"ab_" = "ab" | Match | Match | Ninguna coincidencia |
"" = "ab" | Ninguna coincidencia | Ninguna coincidencia | Ninguna coincidencia |
"ab" = "" | Match | Ninguna coincidencia | Ninguna coincidencia |
"__" = "" | Match | Match | Ninguna coincidencia |
"" = "___" | Ninguna coincidencia | Match | Ninguna coincidencia |
TRIM("___") = "" | Match | Match | Match |
"" = TRIM("___") | Match | Match | Match |