Visual Basic Foro

Programación => Visual Basic 6 => Mensaje iniciado por: Bazooka en Marzo 12, 2015, 08:37:37 pm

Título: Ayuda para acelerar procedimiento con bucles For
Publicado por: Bazooka 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 !!!
Título: Re:Ayuda para acelerar procedimiento con bucles For
Publicado por: Bazooka en Marzo 17, 2015, 02:20:55 pm
Nada x aqui nada x allá....
Título: Re:Ayuda para acelerar procedimiento con bucles For
Publicado por: 79137913 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!!!