Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
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
Codice sorgente - presumibilmente Delphi
rs.MoveFirst
For c = 1 To 89
For v = c + 1 To90' 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
No, non demordo... che testa dura che sono
tutti quei DoEvents e che alcune volte in base alle prestazioni del pc, va in crash , per evitare la schermata bianca del form durante l'elaborazione..
rit_min = rs.RecordCount
intendi che sia all'interno del
Do Until rs.EOF
posso provare , ma non credo che cambi qualcosa nelle prestezioni..
grazie della risposta
()
Newbie
Messaggi: Iscritto:
Postato alle 11:33
Venerdì, 27/04/2012
Testo quotato
Postato originariamente da magicolotto:
tutti quei DoEvents e che alcune volte in base alle prestazioni del pc, va in crash , per evitare la schermata bianca del form durante l'elaborazione..
Ne basta uno, magari nel ciclo più interno ... gli altri eliminali ...
Testo quotato
rit_min = rs.RecordCount
Se il numero rit_min lo ottieni una volta ed è sempre quello, perché calcolarlo centinaia di volte?
Testo quotato
posso provare , ma non credo che cambi qualcosa nelle prestezioni..
E' "anche" quello ...
Ovviamente, il resto del codice andrebbe rivisto.
Una cosa fondamentale sarebbe utilizzare
array
in memoria e non controlli.
E anche cercare di capire se quello che chiedi non sia ottenibile direttamente con una query al DB.