Hola estoy intentando hacer algo por ejemplo
Tengo un "Textbox" y un "Button" el cual cumple una funcion simple.. revisar si hay texto en el "Textbox" y si cumple un parametro el cual compara un texto
Como lo logro hacer?
EDITO:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
If Me.TextBox1.Text = "" Then 'Hey que paso ¿Falta la URL?
MessageBox.Show("Inserte URL", "Error", MessageBoxButtons.OK, MessageBoxIcon.[Error])
ElseIf Not ((Me.TextBox1.Text.Contains("https://soundcloud.com/")) Or (Me.TextBox1.Text.Contains("http://soundcloud.com/"))) Then 'Por si la pagina esta en https:// o en http://
MessageBox.Show("Esta no es una URL de Soundcloud", "Error", MessageBoxButtons.OK, MessageBoxIcon.[Error])
End If
End Sub
Te pasaste un poco al agrupar tantas veces las condiciones ((((()))), eso es lo que falla, están mal agrupadas, de todas formas te lo he mejorado un poco:
Private Sub Button1_Click(ByVal sender As Object, ByVal e As EventArgs) _
Handles Button1.Click
' Creamos una expresión regular con el patrón de direcciones válidas.
Dim SoundCloud_RegEx As New System.Text.RegularExpressions.Regex("(http://|https://)(www\.)?soundcloud.com/.+?")
' Patrón de búsqueda:
' http://soundcloud.com/Texto
' https://soundcloud.com/Texto
' http://www.soundcloud.com/Texto
' https://www.soundcloud.com/Texto
' Aquí almacenaremos la url del TextBox.
Dim URL As Uri
Try
' Seteamos la Url del TextBox.
URL = New Uri(TextBox1.Text.ToLower)
Catch 'ex As Exception
MessageBox.Show("El formato de la URL no es correcto, intente de nuevo.", _
"Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
Exit Sub
End Try
' Comprobamos la longitud de la url del TextBox.
Select Case URL.ToString.Length
Case 0 ' La longitud es 0.
MessageBox.Show("El campo de la URL está vacío, porfavor introduzca una URL.", _
"Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
Exit Sub
Case Else ' La longitud es diferente a 0.
' Comprobamos si el RegEx encuentra coincidencias con la URL del TextBox.
If Not SoundCloud_RegEx.IsMatch(URL.ToString) Then
MessageBox.Show("La URL introducida no corresponde a Soundcloud, intente de nuevo.", _
"Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
End If
End Select
End Sub
EDITO: Aparte, una cosa sin importancia, pero que en el futuro puede darte error y no darte cuenta de la razón... los square brackets sobran [] aquí:
MessageBoxIcon.[Error]
Su uso es muy especial.
EDITO 2: Si usases un RegEx quedaría más simplificado el código, pero bueno, tal como te lo dejé te sirve.
EDITO 3: Dejo aquí posteada la versión antigua por si el regex de antes no funcionase con todas las urls:
Private Sub Button1_Click(ByVal sender As Object, ByVal e As EventArgs) _
Handles Button1.Click
' Seteamos en un Array las urls que consideramos válidas.
Dim Valid_URLs() As String = "http://www.soundcloud.com/ https://www.soundcloud.com/ http://soundcloud.com/ https://soundcloud.com/".ToLower.Split(ChrW(32)).ToArray
' Aquí almacenaremos la url del TextBox.
Dim URL As Uri
Try
' Seteamos la Url del TextBox.
URL = New Uri(TextBox1.Text.ToLower)
Catch 'ex As Exception
MessageBox.Show("El formato de la URL no es correcto, intente de nuevo.", _
"Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
Exit Sub
End Try
' Comprobamos la longitud de la url del TextBox.
Select Case URL.ToString.Length
Case 0 ' La longitud es 0.
MessageBox.Show("El campo de la URL está vacío, porfavor introduzca una URL.", _
"Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
Exit Sub
Case Else ' La longitud es diferente a 0.
For Each Valid_URL As String In Valid_URLs
If URL.ToString.StartsWith(Valid_URL) Then
' Se encontró una URL válida, así que salimos del ciclo y de la subrutina.
Exit Sub
End If
Next
' Si hemos llegado hasta aquí significa que no se encontró ninguna URL válida.
MessageBox.Show("La URL introducida no corresponde a Soundcloud, intente de nuevo.", _
"Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
End Select
End Sub
Saludos
Cita de: EleKtro H@cker en 6 Julio 2013, 06:12 AM
Te pasaste un poco al agrupar tantas veces las condiciones ((((()))), eso es lo que falla, están mal agrupadas, de todas formas te lo he mejorado un poco:
EDITO: Aparte, una cosa sin importancia, pero que en el futuro puede darte error y no darte cuenta de la razón... los square brackets sobran [] aquí:
MessageBoxIcon.[Error]
Su uso es muy especial.
EDITO 2: Si usases un RegEx quedaría más simplificado el código, pero bueno, tal como te lo dejé te sirve.
Saludos
Esto porque lo vi en un tutorial del MSDN al usar los MessageBox
MessageBoxIcon.[Error]
Igual Electro... gracias tu codigo va todo perfecto justo lo que necesitaba
Cita de: SγиtαxEяяoя en 6 Julio 2013, 07:18 AM
Igual Electro... gracias tu codigo va todo perfecto justo lo que necesitaba
De nada, mírate de nuevo el código le puse el regex.
Saludos