Foros del Web » Programación para mayores de 30 ;) » .NET »

condicionar el resultado de un bucle for

Estas en el tema de condicionar el resultado de un bucle for en el foro de .NET en Foros del Web. Hola amigos, tengo un problema que me parte la cabeza. les dejo el codigo y les explico. Código: For Each webpageelement As HtmlElement In allelements ...
  #1 (permalink)  
Antiguo 26/07/2015, 21:14
 
Fecha de Ingreso: agosto-2007
Ubicación: Santiago de Chile
Mensajes: 67
Antigüedad: 16 años, 8 meses
Puntos: 1
condicionar el resultado de un bucle for

Hola amigos, tengo un problema que me parte la cabeza. les dejo el codigo y les explico.

Código:
 For Each webpageelement As HtmlElement In allelements
                If webpageelement.GetAttribute("data-endpoint") = "/ajax/composerx/attachment/group/post/" Then
                    webpageelement.Focus()
                    webpageelement.InvokeMember("click")
                    Exit For
                End If
            Next
Ese pedazo de codigo funciona, el problema es que NO SIEMPRE existe el atributo indicado ahí "webpageelement.GetAttribute("data-endpoint") = /ajax/composerx/attachment/group/post/ " entonces cuando el atributo no existe el programa arroja una "unhandled exception"

Ese codigo se ejecuta dentro de un bucle, en diferentes paginas en cada iteración.

Lo que necesito es que si el bucle FOR no encuentra algo como webpageelement.GetAttribute("data-endpoint") = "/ajax/composerx/attachment/group/post/" entonces realice un end sub.

gracias por cualquier consejo.
  #2 (permalink)  
Antiguo 26/07/2015, 21:22
 
Fecha de Ingreso: agosto-2007
Ubicación: Santiago de Chile
Mensajes: 67
Antigüedad: 16 años, 8 meses
Puntos: 1
Respuesta: condicionar el resultado de un bucle for

Me auto respondo, agregue una variable de tipo boolean al resultado, de esta forma compruebo si dentro del for existe el atributo. lo dejo por si a alguien le sirve.

Código:
Dim CheckElement As Boolean
            For Each webpageelement As HtmlElement In allelements
                If webpageelement.GetAttribute("data-endpoint") = "/ajax/composerx/attachment/group/post/" Then
                    webpageelement.Focus()
                    webpageelement.InvokeMember("click")
                    CheckElement = True
                    Exit For
                End If
            Next

            If CheckElement = False Then
                Timer1.Stop()
                Label5.Text = 0
                StartPublish(ActualCount + 1)
                Exit Sub
            End If
  #3 (permalink)  
Antiguo 27/07/2015, 07:41
(Desactivado)
 
Fecha de Ingreso: enero-2015
Mensajes: 393
Antigüedad: 9 años, 3 meses
Puntos: 52
Respuesta: condicionar el resultado de un bucle for

Cita:
Iniciado por i34a23 Ver Mensaje
Me auto respondo, agregue una variable de tipo boolean al resultado
En realidad una forma más profesional de hacer eso es:

Código VB.Net:
Ver original
  1. Dim webPageElement = allelements.OfType(Of HtmlElement)
  2.                                 .FirstOrDefault(Function(x) x.GetAttribute("data-endpoint") = "/ajax/composerx/attachment/group/post/")
  3.  
  4. If webPageElement IsNot Nothing Then
  5.     webPageElement.Focus()
  6.     webPageElement.InvokeMember("click")
  7. Else
  8.     Timer1.Stop()
  9.     Label5.Text = 0
  10.     StartPublish(ActualCount + 1)
  11.     Exit Sub
  12. End If

Y por supuesto, mucho más profesional que todo eso sería usar C# o F#, en lugar de VB.Net.

Etiquetas: bucle, condicionar, resultado
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 04:39.