Formas de pasar todo a minuscula

1,261 views
Skip to first unread message

Rita Cecila Restrepo De La Hoz

unread,
Mar 29, 2013, 1:18:35 AM3/29/13
to Comunidad de Visual Foxpro en Español
Hola Chicos y chicas.

Estudiando un poco las ayudas de VFP encontré lo que necesitaba, como pasar un texto doto a minúscula, Comando LOWER, hasta ese punto todo claro y funciono a medias, y digo a medias porque yo debo prevenir ciertos "ERRORES INVOLUNTARIOS y ERRORES NO TAN INVOLUNTARIO".

Caso 01
Escrito todo en mayúscula cuando el usuario tiene que escribir en minúscula: SOY_J...@GMAIL.COM
Fue muy fácil corregirlo así: THISFORM.text10.VALUE = LOWER(_MAIL)

CASO 02
Cuando el usuario o usuaria escribe todo con la primera letra en mayúscula y el resto en minúscula: Soy_J...@Gmail.Com
En esta el LOWER no funciono, debió pasarme las letras mayúsculas a minúsculas.

CASO 03
Cuando un usuario te quiere sabotear lo que escribe por ganas de joder: SoY_J...@gMaiL.CoM
Es caso me pudo a pensar en desarrollar un pequeña secuencia que tomara letra por letra y la pasara a minúscula.

Secuencia de comandos con resultado exitoso:
VR_MAIL = " "
VT_CONTADOR = 1
DO WHILE .T.
IF VT_CONTADOR > LEN(_MAIL)
EXIT
ELSE
VT_LETRA = LOWER(SUBSTR(_MAIL,VT_CONTADOR,1))
VR_MAIL = VR_MAIL + VT_LETRA
VT_CONTADOR = VT_CONTADOR + 1
ENDIF
ENDDO
_MAIL = ALLTRIM(VR_MAIL)
THISFORM.text10.VALUE = _MAIL

Después de tanta aclaración como puedo resumir esta secuencia.

Aunque a mi me funciona perfectamente ya que el usuario puede escribir en mayúsculas y minúsculas y al pulsar ENTER todo pasa a minúscula, pero una vez un forero necesitaba colocar CEROS delante del numero y yo tenia una secuencia un poco larga para hacerlo y publique mi ayuda pero enseguida me enseñaron a hacerlo con una sola linea, moraleja uno tiene una forma de rascarse las pulgas, pero siempre habar otro que se las rasque mejor (Jajajaja).

Mil Gracias por sus ayudas.

Rita R.

Edgar Acevedo

unread,
Mar 29, 2013, 1:54:53 AM3/29/13
to publice...@googlegroups.com
Olvídate por un momento que estas trabajando con un FORM y vete a la ventana de comandos de VFP.  Escribe lo siguiente:

? LOWER("SOY_J...@GMAIL.COM")
? LOWER("Soy_J...@Gmail.Com")
? LOWER("SoY_J...@gMaiL.CoM")

Verás que en los 3 CASOS el lower convierte "todo" a minúsculas.  Dudo que tu problema tenga que ver con el LOWER.  Me confunde un poco tu instrucción:   THISFORM.text10.VALUE = LOWER(_MAIL)
Si lo que deseas es bajar a minúsculas el campo una vez haya terminado de escribir el usuario, entonces en el EVENTO "LostFocus" o en el EVENTO "Valid" del control  Text10 yo le pondría el siguiente código:
This.Value = LOWER(This.Value)

Al menos así lo hago yo cuando deseo capturar un campo que guarda un buzón de correo electrónico.  Otra cosa que hago es que en el EVENTO "GotFocus"  pongo el siguiente código:
CAPSLOCK(.F.)

Para "forzar" a que cuando el usuario entre a ese campo, si el teclado del computador estaba en modo MAYUSCULAS, se ponga en modo minúsculas. Incluso podrías experimentar con poner la instrucción:
This.Value = LOWER(This.Value) en el EVENTO "InteractiveChange"  o el EVENTO "Keypressed". Esto para que veas a la tal "jodona" como se jala los pelos porque aunque ella active la tecla de MAYUSCULAS del teclado, de todos modos a medida que escribe todo se vuelve en minúsculas.

Salu2,


Edgar Acevedo.

Rita Cecila Restrepo De La Hoz

unread,
Mar 29, 2013, 2:09:31 AM3/29/13
to publice...@googlegroups.com
Gracias Edgar

Pues Si, todos pasan a minúscula, de pronto el error es mio.

Con referencia a la instrucción, la tengo en un LOSTFOCUS, pero fijate que ya tu me distes lo que necesitaba, obligar al teclado a desactivarse en mayúscula con el CAPSLOCK(.F.)

Con ese comando me funciona perfecto, mil gracias por compartir tus conocimientos conmigo.

Un Abrazo.

Rita

Qsoft

unread,
Mar 29, 2013, 2:28:14 AM3/29/13
to publice...@googlegroups.com

Disculpa, porqué no obligas al usuario a escribir directamente en minusculas? Mira el format del textbox, ahi puedes indicar como tiene que ser el ingreso de texto. En la ayuda del format encuentras los simbolos que te pueden ayudar.

Luis Maria Guayan

unread,
Mar 29, 2013, 8:04:29 AM3/29/13
to publice...@googlegroups.com
En el metodo Valid del TextBox donde ingresa el eMail pones:

This.Value = LOWER(This.Value)
--
Luis Maria Guayan
Tucuman, Argentia
--
Enviado desde un dispositivo movil

ZeRoberto

unread,
Mar 30, 2013, 9:38:07 PM3/30/13
to publice...@googlegroups.com
No entiendo por que los creadores no crearon un mascara para minúsculas si mayúsculas es ! porque no pusieron ¡ para minúsculas


Saludos

Fernando D. Bozzo

unread,
Mar 31, 2013, 9:46:50 AM3/31/13
to publice...@googlegroups.com
Es cierto, pudieron hacerlo, pero hay que analizarlo en contexto: cuando se implementaron las máscaras de campos lo habitual eran las inerfaces de caracteres, el DOS y las pantallas monocromo de 80x25, por lo que lo común era pasar a mayúsculas y no a minúsculas, sobre todo porque cualquier tipo de nombre propio era correcto pasado a mayúsculas, pero no así a minúsculas. Además estaba el tema de que en las impresiones también se usaba mucho las mayúsculas o a lo sumo las palabras capitalizadas; pero incluso ahora, imprimir en minúsculas no es habitual, simplemente porque no suele ser correcto sintácticamente poner todo minúsculas, aunque siempre hay excepciones, y como son excepciones, supongo que también por eso no lo implementaron.
También podrían haber implementado una función proper() (o máscara) que solo ponbga la primer letra de toda la frase en mayúsculas y no la primer letra de cada palabra de la frase, lo que hubiera sido mucho más útil y más usado, sobre todo en los Editbox :-)

Saludos.-



Carlos Miguel FARIAS

unread,
Mar 31, 2013, 11:56:52 AM3/31/13
to Grupo Fox
Hay que tener en cuenta, que, normalmente, el teclado está en modo minúsculas, y si quieres asegurar el modo minúsculas, en el gotfocus del control de texto, pones CAPSLOCK(.F.) y forzas a minúculas.
Hasta se puede controlar si el key pad numérico, trabaja con numérico o control de desplazamiento del cursor.
Saludos: Miguel, La Pampa (RA)

Rita Cecila Restrepo De La Hoz

unread,
Mar 31, 2013, 10:53:05 PM3/31/13
to Comunidad de Visual Foxpro en Español
Listo chicos con el CAPSLOCK(.F.) me funciona perfecto, mantengo lo que digo todos tenemos formas de matarnos las pulgas pero unos se las matan mejor y con menos esfuerzo, lo que tenia en 10 lineas la pase a una. Mil Gracias. Ahora tengo una nueva inquietud pero ya lo podre enseguida en un nuevo hilo.

Mil Gracias.

Rita.

 
Reply all
Reply to author
Forward
0 new messages