AYUDA EN LÍNEA
 WINDEVWEBDEV Y WINDEV MOBILE

Este contenido se ha traducido automáticamente.  Haga clic aquí  para ver la versión en inglés.
Ayuda / WLanguage / Sintaxis WLanguage / Operadores
  • Presentación
  • Detalles
  • equality flexible y equality muy flexible
  • Igualdad y comparison: Real con más de 6 decimales diferentes
  • Intervalos de comparison
  • Operadores comparison y UNICODE
  • Comparación de instancias de estructuras e instancias de clases
  • Operador IN
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaReportes y ConsultasCódigo de Usuario (UMC)
WEBDEV
WindowsLinuxPHPWEBDEV - Código Navegador
WINDEV Mobile
AndroidWidget Android iPhone/iPadIOS WidgetApple WatchMac CatalystUniversal Windows 10 App
Otros
Procedimientos almacenados
Presentació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.
Detalles

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:
Indexación de notas
WEBDEV - Código Navegador La comparison tiene en cuenta los caracteres minúsculos acentuados en el código del navegador.
WEBDEV - Código Navegador El operador "Igualdad muy flexible" no está disponible en el código Navegador.
"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 ...
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.
Para obtener más información sobre Unicode, consulte WINDEV y el formato Unicode.
WEBDEV - Código ServidorWindowsLinuxPHP

Comparación de instancias de estructuras e instancias de clases

Las estructuras dinámicas se instancian cuando se asignan.
Se pueden comparar instancias de estructuras dinámicas (o instancias de clases dinámicas) mediante el operador "=".
Ejemplo:
// Declare the structures
O is ST1
P is ST2

// Declare and instantiate the dynamic structures
P1 is dynamic Structure ST1
P1 = O
P2 is dynamic Structure ST2
P2 = O

// Comparison
IF P1 = P2 THEN...
La misma operación se puede realizar en las instancias de las clases para saber si dos variables designan una sola instancia de clase.
La comparison entre dos instancias diferentes de una clase puede realizarse mediante el uso de buffers.
Ejemplo:
Object1 is dynamic Class1
Object2 is dynamic Class2
BufferObject1, BufferObject2 are Buffers

Object1 = new Class1
Object2 = new Class2

Serialize(Object1, BufferObject1, psdBinary)
Serialize(Object2, BufferObject2, psdBinary)

IF BufferObject1 = BufferObject2 THEN
// True if the two instances have identical contents
ELSE
// False if at least one member is different
END

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))

Versión mínima requerida
  • Versión 9
Esta página también está disponible para…
Comentarios
Haga clic en [Agregar] para publicar un comentario

Última modificación: 24/07/2022

Señalar un error o enviar una sugerencia | Ayuda local