4D v12.4

Operadores de comparación

Inicio

 
4D v12.4
Operadores de comparación

 

Operadores de comparación  


 

 

Las tablas en esta sección muestran los operadores de comparación aplicados a expresiones de tipo cadena, numérico, fecha, hora y puntero. Una expresión que utiliza un operador de comparación devuelve un valor booleano, TRUE o FALSE.

OperaciónSintaxisDevuelveExpresiónValor
IgualdadCadena= CadenaBooleano"abc" = "abc"True
"abc" = "abd"False
DesigualdadCadena# CadenaBooleano"abc" # "abd"True
"abc" # "abc"False
Mayor queCadena> CadenaBooleano "abd" > "abc"True
"abc" > "abc"False
Menor queCadena< CadenaBooleano"abc" < "abd"True
"abc" < "abc"False
Mayor que o igual aCadena>= CadenaBooleano "abd" >= "abc"True
"abc" >= "abd"False
Menor que o igual aCadena<= CadenaBooleano "abc" <= "abd"True
"abd" <= "abc"False
Contiene palabraCadena% CadenaBooleano"Alpha Bravo" % "Bravo"True
"Alpha Bravo" % "ravo"False

Importante: al final de esta sección se ofrece información adicional sobre comparaciones de cadenas.

OperaciónSintaxisDevuelveExpresiónValor
IgualdadNúmero = NúmeroBooleano10 = 10True
10 = 11False
DesigualdadNúmero # NúmeroBooleano10 #11True
10 # 10False
Mayor queNúmero > NúmeroBooleano11 > 10True
10 > 11False
Menor queNúmero < NúmeroBooleano10 < 11True
11 < 10False
Mayor que o igual aNúmero >= NúmeroBooleano11 >= 10True
10 >= 11False
Menor que o igual aNúmero <= NúmeroBooleano10 <= 11True
11 <= 10False

OperaciónSintaxisDevuelveExpresiónValor
IgualdadFecha= FechaBooleano!1/1/97! =!1/1/97!True
!1/20/97! =!1/1/97!False
DesigualdadFecha# FechaBooleano!1/20/97! # !1/1/97!True
!1/1/97! # !1/1/97!False
Mayor queFecha> FechaBooleano!1/20/97! > !1/1/97!True
!1/1/97! > !1/1/97!False
Menor queFecha< FechaBooleano!1/1/97! < !1/20/97!True
!1/1/97! < !1/1/97!False
Mayor que o igual aFecha>= FechaBooleano!1/20/97! >=!1/1/97!True
!1/1/97!>=!1/20/97!False
Menor que o igual aFecha<= FechaBooleano!1/1/97!<=!1/20/97!True
!1/20/97!<=!1/1/97!False

OperaciónSintaxisDevuelveExpresiónValor
IgualdadHora= HoraBooleano?01:02:03? = ?01:02:03?True
?01:02:03? = ?01:02:04?False
DesigualdadHora# HoraBooleano?01:02:03? # ?01:02:04?True
?01:02:03? # ?01:02:03?False
Mayor queHora> HoraBooleano?01:02:04? > ?01:02:03?True
?01:02:03? > ?01:02:03?False
Menor queHora< HoraBooleano?01:02:03? < ?01:02:04?True
?01:02:03? < ?01:02:03?False
Mayor que o igual aHora>= HoraBooleano?01:02:03? >=?01:02:03?True
?01:02:03? >=?01:02:04?False
Menor que o igual aHora<= HoraBooleano?01:02:03? <=?01:02:03?True
?01:02:04? <=?01:02:03?False

Con:

  ` vPtrA y vPtrB apuntan al mismo objeto
 vPtrA:=->unObjeto
 vPtrB:=->unObjeto
  ` vPtrC apunta a otro objeto
 vPtrC:=->otroObjeto
OperaciónSintaxisDevuelveExpresiónValor
IgualdadPuntero= PunteroBooleanovPtrA = vPtrBTrue
vPtrA = vPtrCFalse
DesigualdadPuntero# PunteroBooleanovPtrA # vPtrCTrue
vPtrA # vPtrBFalse

  • Las cadenas se comparan carácter por carácter (excepto en el caso de búsquedas por palabras claves, ver a continuación).
  • Cuando se comparan cadenas, no se tienen en cuenta las mayúsculas y minúsculas; por lo tanto, "a"="A" devuelve TRUE. Para saber si los caracteres están en mayúsculas o minúsculas, compare sus códigos de caracteres. Por ejemplo, la siguiente expresión devuelve FALSE:
 Character code("A")=Character code("a") ` porque 65 no es igual a 97
  • Cuando se comparan cadenas, los caracteres diacríticos se comparan utilizando la tabla de comparación de caracteres del sistema de su ordenador. Por ejemplo, las siguientes expresiones devuelven TRUE:
 "n"="ñ"
 "n"="Ñ"
 "A"="å"
  ` etc.
  • A diferencia de otras comparaciones de cadena, las búsquedas por palabras claves buscan "palabras" en "textos": las palabras se evalúan global e individualmente. El operador % siempre devuelve False si la búsqueda concierne varias palabras o sólo parte de una palabra (por ejemplo, una silaba). Las "palabras" son cadenas de caracteres rodeadas por "separadores," que son los espacios y los caracteres de puntuación. Los números pueden buscarse porque son evaluados como cadenas; sin embargo, los separadores decimales ( . , ) y otros símbolos (moneda, temperatura, etc.) se ignorarán.
 "Alpha Bravo Charlie"%"Bravo" ` DevuelveTrue
 "Alpha Bravo Charlie"%"vo" ` DevuelveFalse
 "Alpha Bravo Charlie"%"Alpha Bravo" ` Devuelve False
 "Alpha,Bravo,Charlie"%"Alpha" ` DevuelveTrue
 "Software y ordenadores"%"comput@" ` DevuelveTrue

Nota: para mayor información sobre las reglas sobre cómo se tienen en cuenta las palabras claves, por favor visite la siguiente dirección: http://www.unicode.org/unicode/reports/tr29/#Word_Boundaries.

  • El carácter arroba (@) puede utilizarse en toda comparación de cadenas en reemplazo de uno o varios caracteres. Por ejemplo, la siguiente expresión es TRUE:
 "abcdefghij"="abc@"

El carácter arroba debe utilizarse en el segundo operando (la cadena a la derecha del operador) para igualar todo número de caracteres. La siguiente expresión es FALSE, porque la arroba @ se considera como un solo carácter en el primer operando:

 "abc@"="abcdefghij"


La arroba significa “uno o más caracteres o nada”. Las siguientes expresiones son TRUE:

 "abcdefghij"="abcdefghij@"
 "abcdefghij"="@abcdefghij"
 "abcdefghij"="abcd@efghij"
 "abcdefghij"="@abcdefghij@"
 "abcdefghij"="@abcde@fghij@"

Por otra parte, en cualquier caso, una comparación de cadenas con dos arrobas consecutivas siempre devolverá FALSE. La siguiente expresión es FALSE:

 "abcdefghij"="abc@@fg"

Cuando el operador de comparación es o contiene un símbolo < o >, sólo soporta la comparación con un solo carácter comodín al final del operando:

 "abcd"<="abc@" `Comparación válida
 "abcd"<="abc@ef" `Comparación no válida

Consejo: si quiere ejecutar comparaciones o búsquedas utilizando @ como un carácter (y no como un comodín), tiene dos opciones:

  • Utilice la instrucción Character code (At sign).
    Imagine, por ejemplo, que quiere saber si una cadena termina con el carácter @.
    - la siguiente expresión (si $vsValor no está vacía) siempre es TRUE:
 ($vsValorLength($vsValor)≥="@")

- la siguiente expresión se evaluará correctamente:

 (Character code($vsValorLength($vsValor)≥)#64)
  • Utilice la opción "Considerar @ como un carácter en búsquedas y ordenaciones", accesible utilizando la caja de diálogo de Preferencias.

Esta opción le permite definir cómo se interpreta el carácter @ cuando se incluye en una cadena de caracteres. Como tal, puede influir en cómo los operadores de comparación se utilizan en Query u Order By. Para mayor información, consulte el Manual de Diseño.

 
PROPIEDADES 

Producto: 4D
Tema: Operadores

 
VER TAMBIÉN 

Operadores
Operadores de bits
Operadores de fechas
Operadores de horas
Operadores de imágenes
Operadores lógicos
Operadores numéricos