ayuda con validaciones
Publicado por mario martinez (8 intervenciones) el 13/12/2008 19:35:57
Hola gente, quisiera pedirles una pequeña ayuda referente a siertas validaciones en visual fox pro9.
Quiero validar campos (text) introducir solo letras y espacios, yo utilize un viejo algoritmo de validacion con vectores, pero es bastante largo para introucirlo en el lostfocus del text, otra manera es haciendo un metodo y utilizando variables booleanas pero a la larga es bastante engorroso, el algporitmo de validacion se los paso a continuacion y despues la forma de como lo aplique en vfp, (funciona bastante bien pero es muy largo)
[algoritmo]
inicio
int vec_prohibidas, c, y
string x,C,Z,
dimensionar vec_prohibidas[28]
vec_prohibidas=[!,",$,%,&,/,(,),=,?,¿,Ç] /*Y asi sucesivamente hasta llenar la dimension del vector*/
leer x /*Aca cargamos nuestra cadena*/
y=lenght(x) /*Esta variable y es la longitud de la cadena x*/
c=0 /*Contador*/
while c <= y /*Mientras el contador sea menor a la longitud de la cadena va a continuar el bucle*/
c=c+1
z=substr(1,c,x)
desde i=1 hasta 28 /*bucle de recorrido del vector*/
if z=vec_prohibidas[i]
imrpimir "Esta cadena contiene caracteres no permitidos"
break/*Si encuentra un carcter no permitido cierra directo el bucle*/
end if
fin desde
fin while
fin
[Aplicacion en visual fox pro9]
[form1>init]
PUBLIC vec_prohibidas as Character
DIMENSION vec_prohibidas(5)
vec_prohibidas(1)='!'
vec_prohibidas(2)='%'
vec_prohibidas(3)='$'
vec_prohibidas(4)='Ç'
vec_prohibidas(5)='='
*// y Asi suecsivamente hasta llenar todos los caracters prohibidos
*//Variables del algoritmo
*//Variables numericas
PUBLIC c, y
STORE 0 TO c, y
*//Variables Caracteres
PUBLIC x, z
STORE "" TO x, z
thisform.text1.Value=""
[form>text1>lostfocus]
SET STEP ON
x=thisform.text1.Value
y=0
y=LEN(TRIM(x))
c=0
DO WHILE c<=y
c=c+1
z=SUBSTR(x,c,1)
FOR i=1 TO 5
IF z=vec_prohibidas(i)
sn=MESSAGEBOX("Usted Ingresop un Caracter Prohibido",0)
*//Usar algun procedimiento de cancelacion tipo clear all o algo que ustedes usen yo uso un procedmiento cancelar de limpieza y que haga un break
thisform.cancelar
ENDIF
ENDFOR
ENDDO
pueden probralos solo con un fromulario y un text para ver que finciona, el problema es que mi programa tiene uno cuanto text`s mas100 aprox. y es bastante engorrosocomo ya dije.
el mismo procedmiento puede ser usado para validar numeros es mas facil ya que hay solo unos pocos caracteres permitdos 15 mas o menos dependiendo de las necesidades.
Espero su ayuda
p/d.. se puede hacer el instalador a un programa hecho en visual fox pro 9, y con que herramiernta podria ser..
saludo desde Paraguay
Quiero validar campos (text) introducir solo letras y espacios, yo utilize un viejo algoritmo de validacion con vectores, pero es bastante largo para introucirlo en el lostfocus del text, otra manera es haciendo un metodo y utilizando variables booleanas pero a la larga es bastante engorroso, el algporitmo de validacion se los paso a continuacion y despues la forma de como lo aplique en vfp, (funciona bastante bien pero es muy largo)
[algoritmo]
inicio
int vec_prohibidas, c, y
string x,C,Z,
dimensionar vec_prohibidas[28]
vec_prohibidas=[!,",$,%,&,/,(,),=,?,¿,Ç] /*Y asi sucesivamente hasta llenar la dimension del vector*/
leer x /*Aca cargamos nuestra cadena*/
y=lenght(x) /*Esta variable y es la longitud de la cadena x*/
c=0 /*Contador*/
while c <= y /*Mientras el contador sea menor a la longitud de la cadena va a continuar el bucle*/
c=c+1
z=substr(1,c,x)
desde i=1 hasta 28 /*bucle de recorrido del vector*/
if z=vec_prohibidas[i]
imrpimir "Esta cadena contiene caracteres no permitidos"
break/*Si encuentra un carcter no permitido cierra directo el bucle*/
end if
fin desde
fin while
fin
[Aplicacion en visual fox pro9]
[form1>init]
PUBLIC vec_prohibidas as Character
DIMENSION vec_prohibidas(5)
vec_prohibidas(1)='!'
vec_prohibidas(2)='%'
vec_prohibidas(3)='$'
vec_prohibidas(4)='Ç'
vec_prohibidas(5)='='
*// y Asi suecsivamente hasta llenar todos los caracters prohibidos
*//Variables del algoritmo
*//Variables numericas
PUBLIC c, y
STORE 0 TO c, y
*//Variables Caracteres
PUBLIC x, z
STORE "" TO x, z
thisform.text1.Value=""
[form>text1>lostfocus]
SET STEP ON
x=thisform.text1.Value
y=0
y=LEN(TRIM(x))
c=0
DO WHILE c<=y
c=c+1
z=SUBSTR(x,c,1)
FOR i=1 TO 5
IF z=vec_prohibidas(i)
sn=MESSAGEBOX("Usted Ingresop un Caracter Prohibido",0)
*//Usar algun procedimiento de cancelacion tipo clear all o algo que ustedes usen yo uso un procedmiento cancelar de limpieza y que haga un break
thisform.cancelar
ENDIF
ENDFOR
ENDDO
pueden probralos solo con un fromulario y un text para ver que finciona, el problema es que mi programa tiene uno cuanto text`s mas100 aprox. y es bastante engorrosocomo ya dije.
el mismo procedmiento puede ser usado para validar numeros es mas facil ya que hay solo unos pocos caracteres permitdos 15 mas o menos dependiendo de las necesidades.
Espero su ayuda
p/d.. se puede hacer el instalador a un programa hecho en visual fox pro 9, y con que herramiernta podria ser..
saludo desde Paraguay
Valora esta pregunta


0