Foro de elhacker.net

Programación => .NET (C#, VB.NET, ASP) => Mensaje iniciado por: SγиtαxEяяoя en 6 Julio 2013, 04:51 am



Título: ayuda con instrucción
Publicado por: SγиtαxEяяoя en 6 Julio 2013, 04:51 am
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
  1. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
  2.        If Me.TextBox1.Text = "" Then 'Hey que paso ¿Falta la URL?
  3.            MessageBox.Show("Inserte URL", "Error", MessageBoxButtons.OK, MessageBoxIcon.[Error])
  4.        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://
  5.            MessageBox.Show("Esta no es una URL de Soundcloud", "Error", MessageBoxButtons.OK, MessageBoxIcon.[Error])
  6.        End If
  7.    End Sub


Título: Re: ayuda con instrucción
Publicado por: Eleкtro 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:

Código
  1.    Private Sub Button1_Click(ByVal sender As Object, ByVal e As EventArgs) _
  2.    Handles Button1.Click
  3.  
  4.        ' Creamos una expresión regular con el patrón de direcciones válidas.
  5.        Dim SoundCloud_RegEx As New System.Text.RegularExpressions.Regex("(http://|https://)(www\.)?soundcloud.com/.+?")
  6.        ' Patrón de búsqueda:
  7.        ' http://soundcloud.com/Texto
  8.        ' https://soundcloud.com/Texto
  9.        ' http://www.soundcloud.com/Texto
  10.        ' https://www.soundcloud.com/Texto
  11.  
  12.        ' Aquí almacenaremos la url del TextBox.
  13.        Dim URL As Uri
  14.  
  15.        Try
  16.            ' Seteamos la Url del TextBox.
  17.            URL = New Uri(TextBox1.Text.ToLower)
  18.        Catch 'ex As Exception
  19.            MessageBox.Show("El formato de la URL no es correcto, intente de nuevo.", _
  20.                            "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
  21.            Exit Sub
  22.        End Try
  23.  
  24.        ' Comprobamos la longitud de la url del TextBox.
  25.        Select Case URL.ToString.Length
  26.  
  27.            Case 0 ' La longitud es 0.
  28.  
  29.                MessageBox.Show("El campo de la URL está vacío, porfavor introduzca una URL.", _
  30.                                "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
  31.                Exit Sub
  32.  
  33.            Case Else ' La longitud es diferente a 0.
  34.  
  35.                ' Comprobamos si el RegEx encuentra coincidencias con la URL del TextBox.
  36.                If Not SoundCloud_RegEx.IsMatch(URL.ToString) Then
  37.                    MessageBox.Show("La URL introducida no corresponde a Soundcloud, intente de nuevo.", _
  38.                                    "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
  39.                End If
  40.  
  41.        End Select
  42.  
  43.    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í:
Código:
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
  1.    Private Sub Button1_Click(ByVal sender As Object, ByVal e As EventArgs) _
  2.    Handles Button1.Click
  3.  
  4.        ' Seteamos en un Array las urls que consideramos válidas.
  5.        Dim Valid_URLs() As String = "http://www.soundcloud.com/ https://www.soundcloud.com/ http://soundcloud.com/ https://soundcloud.com/".ToLower.Split(ChrW(32)).ToArray
  6.  
  7.        ' Aquí almacenaremos la url del TextBox.
  8.        Dim URL As Uri
  9.  
  10.        Try
  11.            ' Seteamos la Url del TextBox.
  12.            URL = New Uri(TextBox1.Text.ToLower)
  13.        Catch 'ex As Exception
  14.            MessageBox.Show("El formato de la URL no es correcto, intente de nuevo.", _
  15.                            "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
  16.            Exit Sub
  17.        End Try
  18.  
  19.        ' Comprobamos la longitud de la url del TextBox.
  20.        Select Case URL.ToString.Length
  21.  
  22.            Case 0 ' La longitud es 0.
  23.  
  24.                MessageBox.Show("El campo de la URL está vacío, porfavor introduzca una URL.", _
  25.                                "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
  26.                Exit Sub
  27.  
  28.            Case Else ' La longitud es diferente a 0.
  29.  
  30.                For Each Valid_URL As String In Valid_URLs
  31.                    If URL.ToString.StartsWith(Valid_URL) Then
  32.                        ' Se encontró una URL válida, así que salimos del ciclo y de la subrutina.
  33.                        Exit Sub
  34.                    End If
  35.                Next
  36.  
  37.                ' Si hemos llegado hasta aquí significa que no se encontró ninguna URL válida.
  38.                MessageBox.Show("La URL introducida no corresponde a Soundcloud, intente de nuevo.", _
  39.                                "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
  40.  
  41.        End Select
  42.  
  43.    End Sub


Saludos


Título: Re: ayuda con instrucción
Publicado por: SγиtαxEяяoя en 6 Julio 2013, 07:18 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í:
Código:
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
Código:
MessageBoxIcon.[Error]


Igual Electro... gracias tu codigo va todo perfecto justo lo que necesitaba



Título: Re: ayuda con instrucción
Publicado por: Eleкtro en 6 Julio 2013, 07:22 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