23 de octubre de 2008

Función EsMayusculas()

Función para determinar si una cadena pasada está en mayúsculas o no.

Hoy me he visto en la necesidad de saber si las cadenas de una tabla (había 9000) estaban en mayúsculas o no.

Tenemos una tabla para traducción de idiomas, en la columna de la izquierda el TextoATraducir, y en la derecha el TextoTraducido. Hemos empleado google, para hacer una traducción inicial (Bastante decente por cierto), pero al traducir, había frases en mayúsculas en el TextoATraducir, que al traducirlas, las ha dejado en minúsculas.

Esto, al visualizarse en la aplicación no se ve bien, pues por diseño, todas nuestras etiquetas están en mayúscula.

Así que necesitaba una función para saber si la frase entera está en mayúscula o no. Pero Fox no la tiene.

Así que he diseñado una función que me ha sacado del aprieto. No se si es muy perfecta, pero a mi me ha resultado muy útil.

Un Saludo.

Fernando Puyuelo
*---------------------------------------------------------
* Método:
*  FUNCTION EsMayusculas
* Parameters:
*  tcCadena: E : Cadena a verificar si está en Mayúsculas
* Objetivo:
*  Revisar si una cadena pasada por parametro está en Mayúsculas o no.
* Ejemplo:
*  ? EsMayusculas("ESTO ES UNA FRASE EN MAYÚSCULAS") -> .T.
*  ? EsMayusculas("ESTO ES UNA FRASE no todo en MAYÚSCULAS") -> .F.
* Programador:
*  Fernando PUyuelo Ossorio
*  INFORMÁTICA BORSAN, S.L.
* Fecha de Terminación:
*  22/10/2008 11:12:24
* Modificaciones:
*---------------------------------------------------------
FUNCTION EsMayusculas
LPARAMETERS tcCadena

LOCAL i, llEsMayusculas
i = 0
llEsMayusculas = NULL

FOR i = 1 TO LEN(tcCadena)

 llLetra = SUBSTR(tcCadena,i,1)
 IF !EMPTY(llLetra)
  llEsMayusculas = ISUPPER(llLetra)
 ENDIF 

 IF !llEsMayusculas
  EXIT
 ENDIF
ENDFOR

IF ISNULL(llEsMayusculas)
 llEsMayusculas = .F.
ENDIF

RETURN llEsMayusculas
*FIN FUNCTION EsMayusculas --------------------------------------

No hay comentarios. :

Publicar un comentario