|
Operadores de comparación
Los operadores de comparison pueden dividirse en varias categorías: | | equality | - Estricta equality: =
- equality flexible: ~=
- Igualdad muy flexible: ~~
- Comienza por: [=
| Comparación | - No es igual a: <>
- Menor que o igual a: <=
- Mayor que o igual a: >=
- Estrictamente menos de: <
- Estrictamente mayor que: >
- Comienza por: [=
- Comienza por: [~ (ignora los caracteres de espacio que se encuentran al principio de la cadena y las mayúsculas y minúsculas).
- Comienza por: [~~ (ignora todos los caracteres de espacio, la puntuación y las mayúsculas y minúsculas).
- comparison a una lista de valores: EN
- Contiene: [=]
- Contiene: [~] (ignora las mayúsculas y minúsculas y los caracteres de espacio que se encuentran al principio y al final de la cadena).
- Contiene: [~~] (ignora todos los caracteres de espacio, la puntuación y las mayúsculas y minúsculas)
- Termina por: =]
- Termina por: ~] (ignora los caracteres de espacio al final de la cadena y las mayúsculas y minúsculas)
- Termina por: ~~] (ignora los caracteres de espacio, la puntuación y las mayúsculas y minúsculas)
| Intervalo de comparación | - Estrictamente incluido entre: < < (y viceversa)
- Entre: < <= y <= < (y viceversa)
- Incluido entre (incluyendo límites): <= <= (y viceversa)
- Incluido entre (incluyendo límites): x TO y
|
Los operadores comparison pueden utilizarse con todos los tipos de operandos. El resultado de una expresión comparison es un booleano. equality flexible y equality muy flexible La equality flexible (~=) sólo se aplica a las cadenas de caracteres (excepto las cadenas fijas). Este operador le permite hacerlo: - no hacen ninguna diferencia entre los caracteres en mayúsculas y en minúsculas,
- ignorar los caracteres de espacio encontrados antes y después de la cadena cuya prueba debe ejecutarse,
- ignorar los caracteres acentuados en minúsculas.
Para ignorar los caracteres de espacio, los caracteres de puntuación y los caracteres CR dentro de las cadenas, utilice la muy flexible equality (~~). HFSQL equivalence : Para recuperar la equivalencia con el muy flexible equality al realizar una búsqueda en una clave de texto en un archivo de datos HFSQL, deben configurarse las siguientes opciones cuando se describe el elemento en el análisis:
"Smith" = "SMITH" // Returns False "Smith" ~= "SMITH" // Returns True " Smith" ~= "SMITH" // Returns True " Smith" ~= "Smith" // Returns True "C'est l'été" ~= "C'est l'ete" // Returns True "I.R.S." ~~ "IRS" // Returns True
Igualdad y comparison: Real con más de 6 decimales diferentes La prueba de equality entre dos números reales se realiza en función de los 6 primeros decimales. De hecho, los errores de redondeo causados por la codificación interna de los reales requieren una prueba específica. Esta prueba debe realizarse comparando la diferencia entre los dos valores a probar y un valor de reference. Dependiendo del tipo de aplicación, este valor puede ser igual o inferior a 0,00001. Esta gestión de redondeo no es específica de WINDEV, WEBDEV y WINDEV Mobile.. Es común a todos los lenguajes de programación que manipular los reales en formato binario.
Diff, R1, R2 are real Diff = 0.00001 IF Abs(1-(R1/R2)) < Diff THEN // R1 and R2 are equal ELSE // R1 and R2 are different END
Intervalos de comparison Los intervalos comparison se utilizan para simplificar la sintaxis de los complejos comparison s. Algunos ejemplos de comparaciones idénticas: - Ejemplo 1:
- IF x>5 AND x<10 THEN...
- IF 5<x<10 THEN...
- Ejemplo 2:
- IF x>=5 AND x<=10 THEN...
- IF x=5 TO 10 THEN ...
 No soportado.
MyArray is array of 5 strings I is int MyArray[1] = "Smith" MyArray[2] = "Aida" MyArray[3] = "Parapoline" MyArray[4] = "Moulin" MyArray[5] = "Clark" FOR I = 1 TO 5 IF "B" < MyArray[I] <= "M" THEN Trace(MyArray[I]) // Displays Smith and Clark END
Operadores comparison y UNICODE Los operadores disponibles son los siguientes: - "=": Estricta equality
- "<>": Diferencia
- "[=": Comienza por
- "[~": Empieza por ignorar los caracteres de espacio que se encuentran al principio de la cadena y por ignorar el caso.
- "[~~": Empieza por ignorar los caracteres de espacio, los caracteres de puntuación y el caso..
- Contiene: [=]
- Contiene: [~]: Contiene mientras ignora el caso.
- Contiene: [~~]: Contiene sin tener en cuenta todos los caracteres de espacio, los caracteres de puntuación y el caso.
- Termina por: =]
- Termina por: ~]: Termina con ignorando los caracteres de espacio que se encuentran al final de la cadena e ignorando el caso..
- Termina por: ~~]: Termina con ignorando los caracteres de espacio, la puntuación y el caso..
- "<", "<=", ">=", ">": Estrictamente menos que, menos que o igual a, mayor que o igual a, estrictamente mayor que
Tiene la posibilidad de utilizar cadenas ANSI, cadenas Unicode y buffers en los diferentes parámetros del programa comparison. La siguiente regla de conversión se utiliza para sistemas Ansi (Windows o Linux): - Si al menos una de las cadenas es un buffer, todas las cadenas se convierten en buffers y la operación se realiza con buffers,
- Si no se cumple la primera condición y hay al menos una cadena de caracteres Unicode, todas las cadenas se convierten en Unicode y la operación se realiza en Unicode (la conversión se realiza con el conjunto de caracteres actual, si es necesario),
- De lo contrario, la operación se realiza en Ansi.
La siguiente regla de conversión se utiliza para sistemas Unicode (Windows o Linux): - Si al menos una de las cadenas es un buffer, todas las cadenas se convierten en buffers y la operación se realiza con buffers,
- De lo contrario, la operación se realiza en Unicode.
Operador IN El operador IN se utiliza para comparar un valor con una lista de valores. Su evaluación devuelve un booleano. Ejemplo:
MyValue is int MyResult is boolean MyValue = 10 MyResult = (MyValue IN(1,4,6,10))
La lista de valores puede contener valores literales o variables cuyo valor se evaluará antes de realizar la comparison. Ejemplo:
MyValue is int MyOtherValue is int MyResult is boolean MyValue = 10 MyOtherValue = 15 MyResult = (MyValue IN(1,4,6,10,MyOtherValue))
Esta página también está disponible para…
|
|
|
|
|
|
|