27/04/12 4:36
magicolotto
Ciao ed un ben ritrovati a tutti....
Come da titolo avrei necessità di velocizzare un codice che agisce su un archivio acces..
Questo ricava frequeza e ritardi ( storico ed attuale ) di tutti gli ambi sul 10 e lotto 5 minuti...
ci sono circa 190 mila estrazioni
ogni estrazione è composta da 20 numeri ( vedi lo spot di Bisio in tv
Il codice che sto per mostrarvi funziona abbastanza bene , però è lentissimoo
e vorrei col vostro aiuto velocizzarlo....
ecco il codice
DOPO AVER APERTO LA CONNESSIONE AL DB
Come da titolo avrei necessità di velocizzare un codice che agisce su un archivio acces..
Questo ricava frequeza e ritardi ( storico ed attuale ) di tutti gli ambi sul 10 e lotto 5 minuti...
ci sono circa 190 mila estrazioni
ogni estrazione è composta da 20 numeri ( vedi lo spot di Bisio in tv
Il codice che sto per mostrarvi funziona abbastanza bene , però è lentissimoo
e vorrei col vostro aiuto velocizzarlo....
ecco il codice
DOPO AVER APERTO LA CONNESSIONE AL DB
rs.MoveFirst For c = 1 To 89 For v = c + 1 To 90 ' ricava tutti gli ambi su 90 numeri freq = 0 rit = 0 rit_max = 0 rit_min = rs.RecordCount rs.MoveFirst Do Until rs.EOF trovato = 0 DoEvents For P = 1 To 19 DoEvents For q = P + 1 To 20 ' ricavo gli ambi usciti sull'estrazione DoEvents DoEvents comb(P) = rs("n" & P) comb(q) = rs("n" & q) n1 = c n2 = v ' ambi sui 90 numeri ' controllo se sono presenti If (comb(P) = n1 And comb(q) = n2) Or (comb(P) = n2 And comb(q) = n1) Then dt = rs("Data") id = rs("concorso") freq = freq + 1 trovato = 1 DoEvents End If Next q Next P 'INIZIO CALCOLO DEL RITARDO STORICO If trovato = 0 Then rit = rit + 1 If rit >= rit_max Then rit_max = rit data_max = rs("Data") ElseIf rit <= rit_min Then rit_min = rit data_min = rs("Data") End If Else rit = 0 End If 'FINE CALCOLO DEL RITARDO STORICO rs.MoveNext Loop 'INSERISCO NELLA LISTA I RISULTATI contlista = contlista + 1 List3.AddItem contlista & "°" & " AMBO : " & n1 & " - " & n2 & " ---> " & "FQR: " & CStr(freq) & " - " & "RIT-ATT: " & CStr(rit) & " - " & "RIT-MAX: " & CStr(rit_max) & " - " & data_max '& " - " & " Assente dal " & " - " & " Posizione numeri : " & comb(P() & " - " & q Next v Next c rs.Close MsgBox "fine"
Ultima modifica effettuata da magicolotto 27/04/12 7:38
aaa