Option Explicit
Sub Main
Dim nTipoRicerca
Dim nAnnoRicerca
Dim nClasse
Dim r,m
Dim nRetRit,nRetRitMax,nRetFre,nStart,nEnd,nValore,nMaxRisultati,nCols
ReDim aR(1)
nTipoRicerca = TipoRicerca
nAnnoRicerca = ScegliAnno
nClasse = ScegliClasse
nMaxRisultati = CInt(InputBox("Quanti elementi scegliere come primi della lista ? ","Quantita combinazioni",10))
ReDim aNum(0)
Call GetANumeriPerSvil(aNum)
ReDim aCol(nClasse)
If nAnnoRicerca = 0 Then Exit Sub
If nMaxRisultati <= 0 Then Exit Sub
Dim aTitoli
aTitoli = Array("","Ruota","Mese","Numeri","Ritardo","RitardoMax","Frequenza","Data uscita" , "Cinquina")
Call InitTabella(aTitoli)
For m = 1 To 12
If GetLimitiMese(m,nAnnoRicerca,nStart,nEnd) Then
For r = 1 To 12
If r <> 11 Then
ReDim aValMax(nMaxRisultati,5)
aR(1) = r
nCols = 0
Call InitSviluppoIntegrale(aNum,nClasse)
Do Until GetCombSviluppo(aCol) = False
Call StatisticaFormazioneTurbo(aCol,aR,nClasse,nRetRit,nRetRitMax,0,nRetFre,nStart,nEnd)
If nTipoRicerca = 0 Then
nValore = nRetRit
Call AggiungiAValoriMax(aCol,nValore,aValMax,nRetRit,nRetRitMax,nRetFre,nMaxRisultati,1,r,nEnd)
ElseIf nTipoRicerca = 1 Then
nValore = nRetRitMax
Call AggiungiAValoriMax(aCol,nValore,aValMax,nRetRit,nRetRitMax,nRetFre,nMaxRisultati,2,r,nEnd)
ElseIf nTipoRicerca = 2 Then
nValore = nRetFre
Call AggiungiAValoriMax(aCol,nValore,aValMax,nRetRit,nRetRitMax,nRetFre,nMaxRisultati,3,r,nEnd)
End If
nCols = nCols + 1
If nCols Mod 100 = 0 Then
Messaggio("Analizzate colonne : " & nCols)
If ScriptInterrotto Then Exit Do
End If
Loop
Call AggiungiRigheTabella(aValMax,nMaxRisultati,NomeRuota(r),MeseNome(m),nTipoRicerca + 4)
End If
Next
End If
Call AvanzamentoElab(1,12,m)
If ScriptInterrotto Then Exit For
Next
Call CreaTabella
End Sub
Function ScegliAnno()
Dim nA,nB,nAnno
nA = Anno(1)
nB = Anno(EstrazioniArchivio)
nAnno = CInt(InputBox("Inserire un anno da " & nA & " a " & nB,"Scelta anno",nA))
If nAnno >= nA And nAnno <= nB Then
ScegliAnno = nAnno
Else
ScegliAnno = 0
End If
End Function
Function TipoRicerca()
Dim aV
aV = Array("Ritardo","RitardoMax","Frequenza")
TipoRicerca = ScegliOpzioneMenu(aV,2)
End Function
Function ScegliClasse()
Dim aV
aV = Array("Estratto","Ambo","Terno")
ScegliClasse = ScegliOpzioneMenu(aV,0) + 1
End Function
Function GetLimitiMese(nMese,nAnno,nRetIni,nRetFi)
Dim g,id
nRetIni = 0
nRetFi = 0
Do
g = g + 1
id = DataEstrToIdEstr(g,nMese,nAnno)
Loop While id = 0 And g <= 30
If id > 0 Then nRetIni = id
g = 32
Do
g = g - 1
id = DataEstrToIdEstr(g,nMese,nAnno)
Loop While id = 0 And g > 0
If id > 0 Then nRetFi = id
If nRetIni And nRetFi > 0 Then
GetLimitiMese = True
Else
GetLimitiMese = False
End If
End Function
Sub AggiungiAValoriMax(aCol,nValore,aValMax,nRit,nRitMax,nFre,nMaxElementi,nIdValue,r,nEnd )
Dim k,j
Dim idEstr
idEstr = nEnd -nRit
For k = 1 To nMaxElementi
If nValore >= aValMax(k,nIdValue) Then
For j = nMaxElementi To k + 1 Step - 1
aValMax(j,0) = aValMax(j - 1,0)
aValMax(j,1) = aValMax(j - 1,1)
aValMax(j,2) = aValMax(j - 1,2)
aValMax(j,3) = aValMax(j - 1,3)
aValMax(j,4) = aValMax(j - 1,4)
aValMax(j,5) = aValMax(j - 1,5)
Next
aValMax(k,0) = StringaNumeri(aCol)
aValMax(k,1) = nRit
aValMax(k,2) = nRitMax
aValMax(k,3) = nFre
If nFre > 0 Then
aValMax(k,4) = GetInfoEstrazione( idEstr)
aValMax(k,5) = StringaEstratti ( idEstr , r )
Else
aValMax(k,4) = ""
aValMax(k,5) = ""
End If
Exit For
End If
Next
End Sub
Sub AggiungiRigheTabella(aValMax,nMaxRisultati,sRuota,sMese,nIdColValore)
ReDim aV(9)
Dim k,j
ReDim aColori(9)
For k = 0 To 9
aColori(k) = vbBlack
Next
aColori(nIdColValore) = vbRed
For k = 1 To nMaxRisultati
aV(1) = sRuota
aV(2) = sMese
For j = 0 To 5
aV(j + 3) = aValMax(k,j)
Next
Call AddRigaTabella(aV,,,,aColori)
Next
End Sub
Sub GetANumeriPerSvil(aNum)
Dim k
ReDim aNum(90)
For k = 1 To 90
aNum(k) = k
Next
End Sub