SoloCodigo

Programación General => Visual Basic 6.0 e inferiores => Visual Basic para principiantes => Mensaje iniciado por: ferhn en Viernes 6 de Junio de 2008, 21:53

Título: Que Hace Esto,,?
Publicado por: ferhn en Viernes 6 de Junio de 2008, 21:53
Hola soy nuevo programando y no entiendo completamnete q hacen estos if:

If InStr(1, txtHora(Index), ".") > 0 Then
            KeyAscii = 0
 End If
               
If Not IsNumeric(Chr(KeyAscii)) Then
            KeyAscii = 0
End If
Título: Re: Que Hace Esto,,?
Publicado por: RadicalEd en Viernes 6 de Junio de 2008, 22:12
Lo que hace el InStr (http://msdn.microsoft.com/es-es/library/8460tsh1(VS.80).aspx) es buscar un cadena dentro de una cadena y devolver su posición, entonces lo que hace es:

Si dentro del textHora se encuentra el caracter '.' comenzando desde la primera posición y esto es mayor de 0 a la variable KeyAscii asignele 0

El segundo, como primera está negando el valor retornado por la expresión IsNumeric (http://msdn.microsoft.com/es-es/library/6cd3f6w1(VS.80).aspx), la función chr (http://msdn.microsoft.com/es-es/library/613dxh46(VS.80).aspx) devuelve el caracter ASCII entregado por el entero dentro de su función.
Título: Re: Que Hace Esto,,?
Publicado por: Nebire en Sábado 7 de Junio de 2008, 14:44
Citar
If Not IsNumeric(Chr(KeyAscii)) Then
            KeyAscii = 0
End If

En la 2ª parte le está diciendo que si 'KeyAscii' no es un número, se le asigne el valor 0.
Son 3 funciones anidadas dentro de un condicional. Se debe analizar siempre por el de más adentro:
chr(nº) = dame el carácter que corresponde a este nº
isnumeric(caracter) = es un número el caracter ?
not isnumeric()  = NO es un número el caracter ?

por tanto:
if ..... then = SI (no(es un número(el caracter nº(KeyAscii)))) LUEGO
Título: Re: Que Hace Esto,,?
Publicado por: ferhn en Sábado 7 de Junio de 2008, 21:55
Muchas Gracias...