Option Explicit
Dim aEstrRit()
Dim aColori()
Sub Main
Dim Inizio,Fine
Dim r,k,e
Dim RitDelRit,FreqDelRit
Dim PrimaEstr
Dim nCol
Dim aR(1)
Dim aN(1)
Inizio = EstrazioneIni
Fine = EstrazioneFin
ReDim aEstrRit(EstrazioniArchivio,11,5)
Call InitAlimentaTabella
ReDim FreqDelRit(11,250)
Call Messaggio("Calcolo tabella ritardi")
PrimaEstr = Inizio - 200
If PrimaEstr < 0 Then PrimaEstr = 1
For k = PrimaEstr To Inizio - 1
For r = 1 To 11
aR(1) = r
For e = 1 To 5
aN(1) = Estratto(k,r,e)
aEstrRit(k,r,e) = RitardoCombinazione(aR,aN,1,k - 1)
If aEstrRit(k,r,e) > 250 Then aEstrRit(k,r,e) = 250
FreqDelRit(r,aEstrRit(k,r,e)) = FreqDelRit(r,aEstrRit(k,r,e)) + 1
Next
Next
Call AvanzamentoElab(1,Inizio - 1,k)
If ScriptInterrotto Then Exit Sub
Next
Call Messaggio("Analisi range in corso...")
For k = Inizio To Fine
ReDim aRigaNumeri(57)
ReDim aRigaRitardi(57)
ReDim aRigaRitardiDei(57)
ReDim aRigaFrequenzaDei(57)
aRigaNumeri(1) = DataEstrazione(k)
aRigaNumeri(2) = k
aRigaRitardi(1) = "Rit"
aRigaRitardiDei(1) = "RitDeiRit"
aRigaFrequenzaDei(1) = "FrqRit"
nCol = 2
For r = 1 To 11
aR(1) = r
For e = 1 To 5
nCol = nCol + 1
aN(1) = Estratto(k,r,e)
aEstrRit(k,r,e) = RitardoCombinazione(aR,aN,1,k - 1)
RitDelRit = GetRitardoDelRitardo(aEstrRit(k,r,e),k - 1,r)
If aEstrRit(k,r,e) > 250 Then aEstrRit(k,r,e) = 250
FreqDelRit(r,aEstrRit(k,r,e)) = FreqDelRit(r,aEstrRit(k,r,e)) + 1
aRigaNumeri(nCol) = aN(1)
aRigaRitardi(nCol) = aEstrRit(k,r,e)
aRigaRitardiDei(nCol) = RitDelRit
aRigaFrequenzaDei(nCol) = FreqDelRit(r,aEstrRit(k,r,e))
Next
Next
Call AddRigaTabella(aRigaNumeri,aColori,,,,"Courier New")
Call AddRigaTabella(aRigaRitardi,aColori,,,,"Courier New")
Call AddRigaTabella(aRigaRitardiDei,aColori,,,,"Courier New")
Call AddRigaTabella(aRigaFrequenzaDei,aColori,,,,"Courier New")
Call AvanzamentoElab(Inizio,Fine,k)
If ScriptInterrotto Then Exit Sub
Next
Call CreaTabella
End Sub
Sub InitAlimentaTabella()
Dim k,i,r
ReDim aTitoli(57)
ReDim aRiga(57)
ReDim aColori(57)
aTitoli(1) = "DataEstr "
aTitoli(2) = "IdEstr "
aRiga(1) = "DataEstr "
aRiga(2) = "IdEstr "
aColori(1) = vbMagenta
aColori(2) = vbMagenta
i = 2
Do While i < 57
r = r + 1
For k = 1 To 5
i = i + 1
If k = 3 Then
aTitoli(i) = SiglaRuota(r) & " "
Else
aTitoli(i) = "---"
End If
aRiga(i) = k & "° "
If r Mod 2 = 0 Then
aColori(i) = vbYellow
Else
aColori(i) = vbCyan
End If
Next
Loop
Call InitTabella(aTitoli,aColori,,,,"Courier New")
Call AddRigaTabella(aRiga,aColori,,,,"Courier New")
End Sub
Function GetRitardoDelRitardo(RitDaEsaminare,IdEstr,ruota)
Dim k,e,b
Dim RitDelRit
RitDelRit = 0
For k = IdEstr To 1 Step - 1
For e = 1 To 5
If aEstrRit(k,ruota,e) = RitDaEsaminare Then
b = True
Exit For
End If
Next
If b Then Exit For
RitDelRit = RitDelRit + 1
Next
GetRitardoDelRitardo = RitDelRit
End Function