lunes 6 de abril de 2009

Funciones de GH Freebrary. Parte 3.- ghEquals, ghEqualStrs, ghFormatOptional, ghFormatStr y ghInc (unidad GHFStrings).

¡Hola de nuevo!

Empiezo con un breve paréntesis para comentarles que ya tengo las fechas para las asesorías de programación que daré en Guadalajara, México. Serán los días 25, 26 y 27 (sábado, domingo y lunes) de este mes de abril. Espero alternar con varios de los lectores que viven o trabajan en esa maravillosa metrópoli y municipios cercanos. Aparte del trabajo que iré a realizar, sugiero que nos reunamos en grupo en alguna cafetería, escuela u oficina para hablar de los temas que nos inquietan como desarrolladores de software y, si se presta la ocasión, llevar a cabo un pequeño taller Delphi.

Bien, a continuación les presento la tercera parte del tema Funciones de GH Freebrary, dándoles a conocer cinco funciones más para el manejo de cadenas de caracteres.


ghEquals

Declaración que tiene:
Function ghEquals (Const Value1, Value2 :String; Const CompareType :TghStrCompare = ghstcInsensitive) :Boolean; Overload;

Descripción corta:
Compara dos cadenas de caracteres (Value1 y Value2) y devuelve True si éstas son iguales, o False en caso contrario.

Ejemplo de uso:
{ Dado el tipo de documento 'Cotización', verificamos si es "esencialmente", es decir, sin importar el tamaño de letras ni si lleva o no algún acento, lo mismo que 'COTIZACION' }
TipoDoc := 'Cotización';
If ghEquals (TipoDoc, 'COTIZACION', ghstcEssential) Then


ghEqualStrs

Declaración que tiene:
Function ghEqualStrs (Const Values :Array Of String; Const CompareType :TghStrCompare = ghstcInsensitive) :Boolean;

Descripción corta:
Devuelve True si todas las cadenas de caracteres de un arreglo dado son iguales, o False en caso de que una o varias sean diferentes al resto.

Ejemplo de uso:
{ Si el usuario introduce por tercera vez consecutiva el mismo código, sin importar el tamaño de letras }
If ghEqualStrs ([CodAnt1, CodAnt2, Edit1.Text]) Then


ghFormatOptional

Declaración que tiene:
Function ghFormatOptional (Const Format, Param :String) :String;

Descripción corta:
Permite dar formato a una cadena de caracteres llamando a la función nativa Format con los parámetros dados, pero sin dejar espacio alguno en la posición del argumento Param si éste es una cadena vacía.

Ejemplo de uso:
{ Mostramos una ventana de mensaje indicando que no es correcto el valor del cuatro de texto Edit1, previendo que pueda tratarse de una cadena vacía }
ShowMessage (ghFormatOptional ('Es incorrecto el valor%*s, por favor verifique.', Edit1.Text));

Resultado cuando Edit1 tiene un valor de 100:



Resultado cuando Edit1 está vacío:



ghFormatStr

Declaración que tiene:
Function ghFormatStr (Const Format, Str :String) :String;

Descripción corta:
Da formato a una cadena de caracteres llamando a la función nativa Format con los parámetros proporcionados, pero devuelve una cadena vacía en caso de que ese sea el valor del argumento Str.

Ejemplo de uso:
{ Establecemos una leyenda en la etiqueta Label1 indicando la calle con la que el domicilio hace esquina, pero solo si tal circunstancia ocurre }
Label1.Caption := ghFormatStr ('(esq. con %s)', CalleEsq);


ghInc

Declaración que tiene:
Function ghInc (Const Value :String; Const Inc :Integer = 1) :String; Overload;

Descripción corta:
Devuelve la cadena de caracteres Value, incrementando en Inc unidades su parte final numérica. Si la cadena Value no termina en un dígito decimal, el resultado será equivalente a la expresión Value + IntToStr (Inc).

Ejemplo de uso:
{ Dada la clave 'AT-07', obtenemos la que subsigue aritméticamente, o sea 'AT-08' }
Clave := 'AT-07';
ClaveSig := ghInc (Clave);



¿Qué opinan de estas cinco funciones y las 10 anteriores que describí? Toc, toc, ¿hay alguien ahí, o ya salieron todos de vacaciones? ;)

Un abrazo en primavera.

Al González. :)

10 comentarios:

Anónimo dijo...

Eh! Al, siempre hay alguien aquí. Como tú mismo reguntas, tu librería ha sido descargada un montón de veces.
Sigue publicando las descripciones, que están muy interesantes.

Saludos

Anónimo dijo...

Enhorabuena por tu desinteresado trabajo. La librería me parece fantástica. He empezado a usarla en mis desarrollos y la encuentro muy util. A veces me cuesta seguir el código, con lo cual las descripciones que publicas me parecen perfectas. Saludos

Rolphy dijo...

Muy bien Al, espero que pronto al termines de convertir al Ingles!

Al González dijo...

Eh! Al, siempre hay alguien aquí. Como tú mismo reguntas, tu librería ha sido descargada un montón de veces.

Sí, me emociono con tan solo ver los contadores, pero me inquieta no poder ver cómo la usan. Como aquel niño que escuchaba pasar el tren, pero no lograba verlo porque la ventana estaba muy alta. ¡Quiero ver, quiero ver! :D

Sigue publicando las descripciones, que están muy interesantes.

Gracias, por ahora es un simple manual de bolsillo, pero que bueno que se comprende. :)


Enhorabuena por tu desinteresado trabajo. La librería me parece fantástica. He empezado a usarla en mis desarrollos y la encuentro muy util. A veces me cuesta seguir el código, con lo cual las descripciones que publicas me parecen perfectas.

Gracias. Me da mucho gusto que te sirva tanto el código como las descripciones. Si eres de los que les gusta explorar código fuente, pronto te formarás un mapa mental de sus calles y avenidas. Notarás que no son cosas tan complejas las que hay ahí.


A los dos: lo de "librería", ¿fue a propósito o accidental? ;)


Muy bien Al, espero que pronto al termines de convertir al Ingles!

Hola Rolphy. Esa es la parte dura de este trabajo. Hace nueve años debí hacerle caso a mi amigo Juan Calderón de empezar a programar en inglés. :(


Recuerden que las que están en español cambiarán de nombre, por lo cual la sugerencia de evitar esas por el momento. :)


Hasta pronto.

Al.

Eliseo GN dijo...

Hola Alberto

Me da gusto que hayas hecho realidad tu intención de ir a Guadalajara, espero que pronto tengas la oportunidad de pasar por el DF.

Salud OS

Al González dijo...

Me da gusto que hayas hecho realidad tu intención de ir a Guadalajara, espero que pronto tengas la oportunidad de pasar por el DF.Gracias Eliseo. En efecto, ya es un hecho lo ir este fin de semana a Guadalajara. Y claro, espero volver a Ciudad de México también en cuanto me sea posible.

Mientras viva entre ambas metrópolis trataré de aprovechar las ventajas. :)

Para quien no lo ubique, Eliseo González es un destacado seguidor del Turbo Legado. Está del lado de la Fuerza en esto de la progración. ;)

Eliseo GN dijo...

Gracias por la presentación Alberto, aunque inmerecida pero muy alentadora :).

Cuando tengas fechas para venir al DF avisame con tiempo para aprovechar y organizar la Segunda Reunión Delphi en el Distrito Federal, que te parece, sería genial ¿no?

Salud OS

Al González dijo...

Cuando tengas fechas para venir al DF avisame con tiempo para aprovechar y organizar la Segunda Reunión Delphi en el Distrito Federal, que te parece, sería genial ¿no?Me parece estupendo, Eliseo. Pero sería la tercera, pues el primer encuentro de la comunidad Delphi en Ciudad de México ocurrió en el verano de 2004. :p

http://pdm2.multiply.com/journal/item/1056/1056

http://pdm2.multiply.com/journal/item/1053/1053

Como sea, cuenta conmigo. :)

Al González dijo...

(chin! otra vez olvidé el salto de párrafo, esto del HTML no es lo mío :p)

Eliseo GN dijo...

Perdón es que a esa no fui invitado :), será entonces la Tercera Reunion Delphi.

Salud OS

Publicar un comentario en la entrada

Te invito a expresar tu opinión abierta y libremente (no es necesario que estés registrado). Vale el anonimato mientras no lo uses como trinchera.