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:
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
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
Muy bien Al, espero que pronto al termines de convertir al Ingles!
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.
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
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. ;)
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
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. :)
(chin! otra vez olvidé el salto de párrafo, esto del HTML no es lo mío :p)
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.