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
-
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
-
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.
-
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
-
Muchas Gracias...