Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Bibliotecas de código fuente > [GH Freebrary]
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

 
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 17-06-2013
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.604
Poder: 29
Al González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en bruto
Función ghEquals

Determina si dos valores son equivalentes o no.

Unidad

GHFRTL

Declaración
Código Delphi [-]
  { Equals? }
  Function ghEquals (Const Value1, Value2 :String;
    Const CompareType :TghStrCompare = ghscLocaleAnyCase) :Boolean;
    Overload;

  { Equals? }
  Function ghEquals (Const Value1 :String; Const StartIndex :Integer;
    Const Value2 :String;
    Const CompareType :TghStrCompare = ghscLocaleAnyCase) :Boolean;
    Overload;
    
  { Equals? }
  Function ghEquals (Const Value1, Value2 :Variant) :Boolean; Overload;

  { Equals? }
  Function ghEquals (Const Value1, Value2 :TGUID) :Boolean; Overload;
Descripción

La función ghEquals permite comprobar si dos valores son iguales o equivalentes, en situaciones donde el operador relacional de igualdad (signo =) no resulta efectivo.

La primera sobrecarga de la función compara dos cadenas de caracteres dadas, bajo el criterio indicado por un tercer parámetro, CompareType, según el cual debe o no debe distinguir entre letras mayúsculas y minúsculas o entre letras con y sin signos diacríticos (acentos). La segunda sobrecarga de la función trabaja de forma similar a la anterior, solo que compara la primera cadena dada a partir de cierta posición de carácter (parámetro StartIndex) contra la segunda cadena completa. La tercera sobrecarga sirve para comparar el resultado de dos expresiones Variant, y comprobar si son variantes de valores equivalentes y además del mismo tipo, es decir, variantes idénticos. La cuarta sobrecarga permite determinar si dos valores de tipo TGUID (identificador único global) son exactamente el mismo.

Si se cumple la comprobación de igualdad, ghEquals devuelve el valor de True; en caso contrario el resultado es False.

Parámetros

Value1 — Primer valor a comparar. Expresión de tipo String, Variant, compatible con Variant o TGUID.

Value2 — Segundo valor a comparar. Expresión de tipo String, Variant, compatible con Variant o TGUID.

CompareType — Tipo de comparación a realizar con las cadenas de caracteres dadas. Debe ser alguna de las constantes que define el tipo de dato TghStrCompare. Este parámetro puede omitirse, su valor predeterminado es ghscLocaleAnyCase.

StartIndex — Indica el índice de carácter desde el cual se tomará el valor de la cadena de caracteres Value1 para compararlo con la cadena Value2. Este parámetro es útil para descartar caracteres que se encuentren al comienzo de Value1, como puede ser algún prefijo.

Ejemplos

En el siguiente bloque de código, la condición del primer If no se cumple pero la del segundo sí. Las cadenas de caracteres 'Titanic' y 'titanic' no son exactamente iguales, pero sí equivalentes.
Código Delphi [-]
Var
  S :String;
Begin
  S := 'Titanic';

  If S = 'titanic' Then  // False
    ShowMessage ('');

  If ghEquals (S, 'titanic') Then  // True
    ShowMessage ('The strings are equivalent.');
En el siguiente bloque de código, las condiciones del primer y del tercer If no se cumplen pero las del segundo y cuarto sí. Las cadenas de caracteres 'México', 'Mexico' y 'MEXICO' no son exactamente iguales, y para la función nativa ANSISameText (que es insensible a mayúsculas y minúsculas) tampoco son equivalentes. En cambio tales valores String sí son equivalentes para la función ghEquals, cuando se usa la opción ghscSimple (ignorar acentos) o ghscSimpleAnyCase (ignorar acentos y no distinguir entre mayúsculas y minúsculas).
Código Delphi [-]
  S := 'México';

  If S = 'Mexico' Then  // False
    ShowMessage ('');

  If ghEquals (S, 'Mexico', ghscSimple) Then  // True
    ShowMessage ('The strings are equivalent.');

  If ANSISameText (S, 'MEXICO') Then  // False
    ShowMessage ('');

  If ghEquals (S, 'MEXICO', ghscSimpleAnyCase) Then  // True
    ShowMessage ('The strings are equivalent.');
En el siguiente bloque de código, la condición del primer If no se cumple pero la del segundo sí. La subcadena de caracteres 'ffffffff' y la cadena 'FFFFFFFF' no son exactamente iguales, pero sí equivalentes.
Código Delphi [-]
  S := '0xffffffff';

  If Copy (S, 3, MaxInt) = 'FFFFFFFF' Then  // False
    ShowMessage ('');

  If ghEquals (S, 3, 'FFFFFFFF') Then  // True
    ShowMessage ('The strings are equivalent.');
En el siguiente bloque de código, la condición del primer If se cumple pero la del segundo no. El operador = determina que los valores de las variables Variant V1 y V2 son equivalentes aunque no sean del mismo tipo: el primer variante es un valor de punto flotante (tipo varDouble), mientras que el segundo es una cadena de caracteres (tipo varString). Esta diferencia de tipos hace que la función ghEquals devuelva False.
Código Delphi [-]
Var
  V1, V2 :Variant;
Begin
  V1 := 3.141516;
  V2 := '3.141516';

  If V1 = V2 Then  // True
    ShowMessage ('The variants are equivalent (but not equal).');

  If ghEquals (V1, V2) Then  // False
    ShowMessage ('');
En seguida cambiamos el valor de V2, asignándole el mismo valor de punto flotante que tiene V1. Ahora ghEquals devuelve True, por ser V1 y V2 dos variantes idénticos.
Código Delphi [-]
  V2 := 3.141516;

  If ghEquals (V1, V2) Then  // True
    ShowMessage ('The variants are identical.');
En el siguiente bloque de código, la condición del If se cumple porque las constantes CLASS_DOMDocument60 y ghciMSXMLDoc60 tienen exactamente el mismo valor TGUID.
Código Delphi [-]
Const
  CLASS_DOMDocument60 :TGUID = '{88D96A05-F192-11D4-A65F-0040963251E5}';
Begin
  If ghEquals (CLASS_DOMDocument60, ghciMSXMLDoc60) Then  // True
    ShowMessage ('The GUIDs are equal.');

Última edición por Al González fecha: 12-01-2014 a las 10:04:38.
Responder Con Cita
 



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Función javascript que llama a otra función javascript en otra página jandroruiz HTML, Javascript y otros 4 28-02-2013 11:38:00
Funcion ABS brandolin SQL 5 24-01-2009 14:53:38
Función o q? Veanny Internet 2 21-02-2008 21:43:40
La función Ord() soul6301 Varios 2 27-06-2004 01:43:17
funcion agora18 SQL 1 06-10-2003 07:18:30


La franja horaria es GMT +2. Ahora son las 20:08:22.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi