Autor Tema: Ayuda para acelerar procedimiento con bucles For  (Leído 3434 veces)

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

Bazooka

  • Terabyte
  • *****
  • Mensajes: 951
  • Reputación: +31/-20
  • El pibe Bazooka
    • Ver Perfil
    • Desof sistemas
Ayuda para acelerar procedimiento con bucles For
« en: Marzo 12, 2015, 08:37:37 pm »
Hola amigo tengo esta porcion de codigo y hace una iteracciones de unos 5000 a 10000 y me resulta muy lenta.

Se podria optimizar para que sea mas rapida ?

Código: [Seleccionar]
Private Sub CONTROL_TABLAS()

Dim N     As Byte

Dim t     As Long

Dim tabla As String

Dim mat() As String


'RECORRO TODAS LAS TABLAS en juegos
For t = 1 To UBound(TABLAS)
 
   mat = Split(TABLAS(t).combinacion, "\")

   If TABLAS(t).combinacion = "" Then
      'nada vacia
   Else

     
      For N = 0 To UBound(mat())

         If balls(mat(N)).Extraida Then
            tabla = tabla & "1"
         Else
            tabla = tabla & "0"
         End If

      Next N

      '
      If ComparaBitPatron(tabla) Then         
         listGan(0).AddItem "Tabla N°" & t  '& " -- " & tabla
         listGan(0).ItemData(listGan(0).NewIndex) = t  'InfoCartonesGanadores(n)
        ' listGan(0).Tag = Me.lbCantadas.Caption
        TERMINADO = True
      End If
           
      tabla = ""
   End If

Next
 
 
End Sub

'#########################################################

Private Function ComparaBitPatron(P1 As String) As Boolean

Dim mat() As String

Dim N     As Byte
   
For N = 1 To chPatron.UBound 'RECORRE TODOS LOS BOTONES Y CHEQUEA EL ESTADO DE VALUE

   If chPatron(N).Value Then 'SI ESTA ACTIVO CHEUQEO EL BIT 1
      If Mid(P1, N, 1) <> "1" Then Exit Function
   End If

Next

ComparaBitPatron = True
End Function

Gracias !!!
« última modificación: Marzo 12, 2015, 08:40:05 pm por Bazooka »
Todos somos muy ignorantes. Lo que ocurre es que no todos ignoramos las mismas cosas.

Bazooka

  • Terabyte
  • *****
  • Mensajes: 951
  • Reputación: +31/-20
  • El pibe Bazooka
    • Ver Perfil
    • Desof sistemas
Re:Ayuda para acelerar procedimiento con bucles For
« Respuesta #1 en: Marzo 17, 2015, 02:20:55 pm »
Nada x aqui nada x allá....
Todos somos muy ignorantes. Lo que ocurre es que no todos ignoramos las mismas cosas.

79137913

  • Megabyte
  • ***
  • Mensajes: 185
  • Reputación: +21/-4
  • 4 Esquinas
    • Ver Perfil
    • Eco.Resumen Resumenes Cs. Economicas
Re:Ayuda para acelerar procedimiento con bucles For
« Respuesta #2 en: Marzo 17, 2015, 04:00:27 pm »
HOLA!!!

Si, podes acelerar mucho el proceso, usando un array de Booleans en vez de la cadena de 0 y 1 asi te ahorras el MID que es uno de tus puntos criticos de velocidad y la concatenacion, el split y demas, inclusive aunque mantengas ese array en tandem con los que ya tenes deberia ir mucho mas rapido, hacelo y me decis.

GRACIAS POR LEER!!!
"Como no se puede igualar a Dios, ya he decidido que hacer, ¡SUPERARLO!"
"La peor de las ignorancias es no saber corregirlas"

 79137913                          *Shadow Scouts Team*                                                          Resumenes Cs.Economicas