Dividir datos de Textbox

12/05/2005 - 16:01 por Marcos Caballero | Informe spam
Muy buenas, vereis tengo una aplicación que realiza una monitorización de
unos servidores por dirección IP, y ahora la estoy depurando.

Tengo un textbox (donde se introduce la dirección IP), el cual solo admite
numeros y "." y ahora lo que quiero es que al validar en el evento
Validating, me coja las 4 partes de la dirección IP y comprobar que esta
dentro del rango permitido menor o = cada parte a 255.
El codigo que tengo en el evento es el siguiente:

Private Sub txtIP_Destino_Validating(ByVal sender As Object, ByVal e As
System.ComponentModel.CancelEventArgs) Handles txtIP_Destino.Validating
Dim Divisor As String
Dim p As Integer
Dim Partes As String()
Dim texto As String
Dim n As Byte = 0
Divisor = "."
p = txtIP_Destino.Text.IndexOf(".")
Partes = txtIP_Destino.Text.Split(".") ',
txtIP_Destino.Text.IndexOf("."))
For Each texto In Partes(n)

MessageBox.Show(Partes(n))
n = n + 1
Next
End Sub

Pero al ejecutar esto me da las 2 primeras partes correctas, y la tercera me
la da junto con la cuarta,(ejemplo: 234.123)

Que hago mal??

Gracias

Preguntas similare

Leer las respuestas

#1 Giox
12/05/2005 - 16:28 | Informe spam
hola utiliza una expresion regular
/^[1-255]{1,3}\.[1-255]{1,3}\.[1-­255]{1,3}\.[1-255]{1,3}$/



saludos
Giox



"Marcos Caballero" escribió en
el mensaje news:
Muy buenas, vereis tengo una aplicación que realiza una monitorización de
unos servidores por dirección IP, y ahora la estoy depurando.

Tengo un textbox (donde se introduce la dirección IP), el cual solo admite
numeros y "." y ahora lo que quiero es que al validar en el evento
Validating, me coja las 4 partes de la dirección IP y comprobar que esta
dentro del rango permitido menor o = cada parte a 255.
El codigo que tengo en el evento es el siguiente:

Private Sub txtIP_Destino_Validating(ByVal sender As Object, ByVal e As
System.ComponentModel.CancelEventArgs) Handles txtIP_Destino.Validating
Dim Divisor As String
Dim p As Integer
Dim Partes As String()
Dim texto As String
Dim n As Byte = 0
Divisor = "."
p = txtIP_Destino.Text.IndexOf(".")
Partes = txtIP_Destino.Text.Split(".") ',
txtIP_Destino.Text.IndexOf("."))
For Each texto In Partes(n)

MessageBox.Show(Partes(n))
n = n + 1
Next
End Sub

Pero al ejecutar esto me da las 2 primeras partes correctas, y la tercera


me
la da junto con la cuarta,(ejemplo: 234.123)

Que hago mal??

Gracias
Respuesta Responder a este mensaje
#2 Angel J. Hernández M.
12/05/2005 - 17:21 | Informe spam
Es más sencillo y haces un split del texto contenido en el TextBox, por
ejemplo:

' Evento Validating del TextoBox

Dim partes As String() = TextBox.Trim().Split("."), _
valido As Boolean = EsUnFragmentoValido(partes) ' Dependiendo del
valor de valido procedes a tomar alguna acción

'*******************************************

Private Function EsUnFragmentoValido(ByVal fragmentos As String()) As
Boolean
Dim retval As Boolean = True
For Each parte As String In fragmentos
If parte.Length > 0 AndAlso Cint(parte) >= 0 AndAlso Cint(parte)
<= 255 Then
retval = False
Exit For
End If
Next
Return retval
End Function

Saludos,


Angel J. Hernández M.
MCP - MCAD - MCSD - MCDBA
http://groups.msn.com/desarrolladoresmiranda



"Marcos Caballero" wrote in
message news:
Muy buenas, vereis tengo una aplicación que realiza una monitorización de
unos servidores por dirección IP, y ahora la estoy depurando.

Tengo un textbox (donde se introduce la dirección IP), el cual solo admite
numeros y "." y ahora lo que quiero es que al validar en el evento
Validating, me coja las 4 partes de la dirección IP y comprobar que esta
dentro del rango permitido menor o = cada parte a 255.
El codigo que tengo en el evento es el siguiente:

Private Sub txtIP_Destino_Validating(ByVal sender As Object, ByVal e As
System.ComponentModel.CancelEventArgs) Handles txtIP_Destino.Validating
Dim Divisor As String
Dim p As Integer
Dim Partes As String()
Dim texto As String
Dim n As Byte = 0
Divisor = "."
p = txtIP_Destino.Text.IndexOf(".")
Partes = txtIP_Destino.Text.Split(".") ',
txtIP_Destino.Text.IndexOf("."))
For Each texto In Partes(n)

MessageBox.Show(Partes(n))
n = n + 1
Next
End Sub

Pero al ejecutar esto me da las 2 primeras partes correctas, y la tercera
me
la da junto con la cuarta,(ejemplo: 234.123)

Que hago mal??

Gracias
Respuesta Responder a este mensaje
#3 Eduardo A. Morcillo [MS MVP VB]
13/05/2005 - 02:07 | Informe spam
Puedes utilizar IPAddress.Parse:


Try

Dim ip As IPAddress

ip = IPAddress.Parse(miIpTxt)

' El ip es correcto

Catch

' El ip es incorrecto

End Try


Eduardo A. Morcillo [MS MVP VB]
http://www.mvps.org/emorcillo
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida