ayuda con instrucción

Iniciado por SγиtαxEяяoя, 6 Julio 2013, 04:51 AM

0 Miembros y 1 Visitante están viendo este tema.

SγиtαxEяяoя

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:

Código (vbnet) [Seleccionar]
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

Eleкtro

#1
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:

Código (vbnet) [Seleccionar]
   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:

Código (vbnet) [Seleccionar]
    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








SγиtαxEяяoя

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


Eleкtro

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