Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: Asalta_Hacker en 18 Diciembre 2007, 22:40 pm



Título: [Ayuda] Filtrar Caracteres TextBox
Publicado por: Asalta_Hacker en 18 Diciembre 2007, 22:40 pm
Hola, este es mi problema, tengo un textbox al que le e hecho una funcion para que solo acepte numeros y puntos (.), me gustaria saber como restringirlo para que solo pueda poner el formato IP, tipo XXX.XXX.XXX.XXX , y no todo numeros o todo puntos, alguien sabria ayudarme?

Muchas Gracias

Salu2!


Título: Re: [Ayuda] Filtrar Caracteres TextBox
Publicado por: cassiani en 19 Diciembre 2007, 05:55 am
 Échadle un vistazo a esto a ver si es lo que queres, la verdad siempre hay formas mas simplificadas de hacerlo, pero tengo sueño mañana tengo que trabajar y esto es lo único que se me ocurre por el momento (creo que ni leí bien).  :rolleyes:

Mi Conciencia: ¿Tienes que trabajar? ¡Pero si tú no trabajas!
Yo: ¡cierto es! Pero igual me debo levantar temprano para estudiar,  ::)


Ahora mismo se me ocurre una forma muy sencilla de hacerlo, usando cuatro textbox o mejor aun una matriz de ellos, por ejemplo, y que cada uno sea un byte de la IP, luego lo concatenas junto con los puntos y ¡ya esta!  :huh:


Pero si por otro lado preferís hacerlo con un solo textbox, te dejo esto:
Código:
Option Explicit

Private Sub Form_Load()
    Text1.MaxLength = 15
End Sub

Private Sub Text1_KeyPress(KeyAscii As Integer)
On Error Resume Next
Dim Tecla As String
    Tecla = Chr(KeyAscii)
    If KeyAscii <> 8 Then 'Si no se selecciono la tecla de dirección, entramos
        Select Case Tecla
            Case "0" To "9" 'metemos a números de 0 a 9 en paquete de permitidos
                If Len(Text1.Text) > 2 Then
                    'Si los últimos tres caracter son números...
                    If IsNumeric(Mid(Text1.Text, Len(Text1.Text), 1)) Then '1
                        If IsNumeric(Mid(Text1.Text, Len(Text1.Text) - 1, 1)) Then '2
                            If IsNumeric(Mid(Text1.Text, Len(Text1.Text) - 2, 1)) Then '3
                                KeyAscii = 0 'entonces no dejamos que introduzca otro
                            End If
                        End If
                    End If
                End If
            Case ".": 'Metemos al puntito entre los permitidos
                'No permitimos puntos si el TextBox está vacio
                If Text1.Text = "" Then KeyAscii = 0
                'Acá no permitimos que se coloquen dos puntos seguidos _
                si el caracter anterior es un punto, no permite que se inserte otro
                If Right(Text1.Text, 1) = "." Then KeyAscii = 0
            Case Else:
                KeyAscii = 0
        End Select
    End If
End Sub 'by C@ssi@ni

 Aparte de esto tenes que hacer muchas validaciones a la IP final, por ejemplo: cada byte del código (me refiero a la IP, claro está), debe estar entre 0 y 255, tenes que restringir el números de puntos que entran al textbox (obviamente solo pueden ser tres xxx.xxx.xxx.xxx) podes hacerlo usando un for hasta Len(text1.text) que vaya buscando y contando los puntos y que una vez estén completos los tres, no permita la entrada de otro mas (creo que va así, la verdad ya ni veo) otra cosa, también tenes que tratar el copy & paste porque sino se comerá cosas desagradable y le dará indigestión (todo eso es tarea para vos,  :xD).

Saludos voy a dormir…  :o


Título: Re: [Ayuda] Filtrar Caracteres TextBox
Publicado por: Asalta_Hacker en 19 Diciembre 2007, 15:04 pm
Muchas gracias, lo probare de las 2 formas!

Salu2


Título: Re: [Ayuda] Filtrar Caracteres TextBox
Publicado por: Asalta_Hacker en 19 Diciembre 2007, 15:07 pm
Exacto! Me reafirmo, esto sirvio muy binen, muchas gracias, era el ultimo toke k le faltaba a mi Software!

Salu2


Título: Re: [Ayuda] Filtrar Caracteres TextBox
Publicado por: cassiani en 19 Diciembre 2007, 15:09 pm
 Para eso estamos, ¡mi amigo!
 Saludos...  ;D