elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Recopilación Tutoriales y Manuales Hacking, Seguridad, Privacidad, Hardware, etc


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP)
| | | |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo)
| | | | |-+  Problema con FOR
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Problema con FOR  (Leído 1,898 veces)
HJ ~

Desconectado Desconectado

Mensajes: 69


Ver Perfil
Problema con FOR
« en: 2 Julio 2010, 15:51 pm »

Hola, veréis, tengo una función que se repite en VB y me obtiene una serie de variables de una cadena definida, el caso es que, por ejemplo, me obtiene las 5 primeras cadenas, pero las siguientes no me las puede obtener, me tira un error, ya que han sido alteradas, lo que quiero es que omita ese error y siga repitiendo la función FOR.

Hasta ahora me tiraba un error, pero lo evado haciendo esto:

Código
  1. errorsub:
  2. If Err Then
  3. Exit For
  4. End If

Pero eso no me sirve, ya que, para la función y, como es lógico, me para la función FOR pero no sigue adelante, mi pregunta es, como puedo hacer que se omita el error, y siga adelante?

No me digais con "on error resume next" porque no se repite, me tira la ultima cadena de antes.

Gracias


En línea

Novlucker
Ninja y
Colaborador
***
Desconectado Desconectado

Mensajes: 10.683

Yo que tu lo pienso dos veces


Ver Perfil
Re: Problema con FOR
« Respuesta #1 en: 2 Julio 2010, 15:53 pm »

Sin ver la función estamos adivinando, debe de haber una razón para ese error verdad?

Saludos


En línea

Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD
"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein
HJ ~

Desconectado Desconectado

Mensajes: 69


Ver Perfil
Re: Problema con FOR
« Respuesta #2 en: 2 Julio 2010, 16:01 pm »

Sin ver la función estamos adivinando, debe de haber una razón para ese error verdad?

Saludos


Sin problema.

Código
  1.  
  2. For i = 0 To 788
  3.  
  4.  
  5.    Nombre = Split(Split(Text1.Text, "mi nombre es")(i - 1), ".")(0)
  6.  
  7.  
  8.    List2.AddItem Nombre
  9.  
  10. errorsub:
  11. If Err Then
  12. Exit For
  13. End If
  14. Next

La funcion funciona perfecto, pero si encuentr aun bache, es decir, una cadena que no contiene "Nombre" me peta.

Gracias
En línea

Novlucker
Ninja y
Colaborador
***
Desconectado Desconectado

Mensajes: 10.683

Yo que tu lo pienso dos veces


Ver Perfil
Re: Problema con FOR
« Respuesta #3 en: 2 Julio 2010, 16:18 pm »

Notas, no uses etiquetas :-( (errorsub:)

El código tiene varios problemas:

  • Te supones que el array va hasta 788, pero eso no lo sabes con certeza (o si?)
  • No es eficiente, ya que con cada "vuelta" del for vuelves a hacer un split del text1.txt
  • En ambos split haces referencia al primer elemento del array, pero el array puede tener o no elementos, así que se parte cuando no los tiene.
  • Para i = 0 , (i - 1) = -1 = array(-1) ?

Saludos
En línea

Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD
"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein
HJ ~

Desconectado Desconectado

Mensajes: 69


Ver Perfil
Re: Problema con FOR
« Respuesta #4 en: 2 Julio 2010, 16:42 pm »

Notas, no uses etiquetas :-( (errorsub:)

El código tiene varios problemas:

  • Te supones que el array va hasta 788, pero eso no lo sabes con certeza (o si?)
  • No es eficiente, ya que con cada "vuelta" del for vuelves a hacer un split del text1.txt
  • En ambos split haces referencia al primer elemento del array, pero el array puede tener o no elementos, así que se parte cuando no los tiene.
  • Para i = 0 , (i - 1) = -1 = array(-1) ?

Saludos


1- No, tienes razón, no lo se con certeza.
2- En este caso debería separar el split entonces, no es así?
3- Exacto, el objetivo es que continúe cuando encuentre algo incorrecto
4- Eso no le des importancia lo hice porque no me cogía el primer elemento y lo debía hacer así.

Espero que me puedas ayudar.

Gracias
En línea

BlackZeroX
Wiki

Desconectado Desconectado

Mensajes: 3.158


I'Love...!¡.


Ver Perfil WWW
Re: Problema con FOR
« Respuesta #5 en: 2 Julio 2010, 20:58 pm »

Aprende a no hacer en un bucle sea del tipo qué sea un proceso tras otro repetitivo si es un split o X función qué sabes te va a dar lo mismo, es mejor almacenarlo en una variable para trabajar con esta y no con la función en este caso se resume a:

Código
  1.  
  2. On Error Resume Next  ' // para que ignore los errores y siga en la sucesion deseada!¡.
  3.  
  4. Dim TmpArray$()
  5. Dim TmpArray2$()
  6. Dim indexOfArray&
  7.  
  8.    TmpArray$ = Split("mi nombre es Miguel Angel O. A.", "mi nombre es")
  9.  
  10.    For indexOfArray = LBound(TmpArray$) To UBound(TmpArray$)
  11.        TmpArray2$ = Split(TmpArray$(indexOfArray), ".")
  12.        List2.AddItem TmpArray2$(0)
  13.        If Err.Number > 0 Then Err.Clear: Exit For ' // Verifica si hay error si hay sale del for next pero antes limpia el error.
  14.    Next
  15.  
  16.  
« Última modificación: 2 Julio 2010, 21:09 pm por BlackZeroX▓▓▒▒░░ » En línea

The Dark Shadow is my passion.
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines