Option Explicit
Sub Main
Dim nSorte,aRuote,Ini,fin,sMsg,nMoltip,nTrov,nNumSel
Dim nCicloTeo,nRitMax,nRitMin,nClasseLunghetta,nRuoteSel,nLunghetteDaTrov,i2,ccColonna,ClasseFin
Dim TimeStart
Dim k,CollComb,cColonna
Dim aN
Dim TipoAlgo
Dim RetRit,RetRitMax,RetIncrRitMax,RetFrq
Dim nSuperficialita
Call Scrivi
Call Scrivi("Elaborazione eseguita con archivio lotto aggiornato al: " & giorno(EstrazioneFin) & "-" & Mese(EstrazioneFin) & "-" & Anno(EstrazioneFin))
Call Scrivi
'elementi x verificatore
Dim estrazione
Dim colpidiverifica
Dim winalcolponumero
Dim esitoverifica
Dim estrattiusciti
Dim estrazionediuscita
Dim colpomassimo
Dim casipositivi
Dim casinegativi
Dim casiattuali
Dim casitotali
Dim estrazionidaverificare
Dim sortediverifica
Dim Inizioverifica
Dim colpirimanentirispettocolpomassimo
Dim colpirimanentirispettocolpidiricerca
Dim colpirimanentiminimi
Dim Formazioneconcolpirimanentiminimi
Dim ruotaconcolpirimanentiminimi
Dim esitoestratto
Dim esitoambo
Dim esitoterno
Dim esitoquaterna
Dim esitocinquina
Dim estrapolaestratti
estrapolaestratti = "estrapolaestratti.txt"
If FileEsistente(estrapolaestratti) Then
Call EliminaFile(estrapolaestratti)
End If
esitoestratto = 0
esitoambo = 0
esitoterno = 0
esitoquaterna = 0
esitocinquina = 0
colpirimanentiminimi = EstrazioneFin
fin = EstrazioneFin
estrazionidaverificare = CInt(InputBox("estrazioni da verificare",,90)) ' EstrazioneFin - 8117)) '18 '60 '2700 ''369)) '100))
Inizioverifica = fin - estrazionidaverificare
'colpidiverifica = 36
colpidiverifica = CInt(InputBox("colpidi di verifica",,estrazionidaverificare - 2))
sortediverifica = CInt(InputBox("sorte di verifica",,1))
'---------------------------
nTrov = 0
nNumSel = ScegliNumeri(aN)
ReDim aRuote(0)
Call ScegliRuote(aRuote)
nSorte = SelEsito' ScegliEsito 'scegliere 1
nClasseLunghetta = CInt(InputBox("Scegli classe lunghetta di partenza",,72)) ' UBound(aN) - 3)) ' UBound(aN))) 'UBound(aN))) ' - 5)) ' classe di partenza effettiva spesso mlto diversa dalla classe della formazione base di partenza...
ClasseFin = CInt(InputBox("Scegli classe lunghetta finale",,nClasseLunghetta - 0))
For estrazione = Inizioverifica To fin
Dim r
For r = 1 To 100
Call Messaggio(GetInfoEstrazione(estrazione) & " c+ " & casipositivi & " c- " & casinegativi & " ca " & casiattuali & " clpmax " & colpomassimo & " crt min " & colpirimanentirispettocolpomassimo & " ruote " & StringaRuote(aRuote))
Next
TipoAlgo = 0
nSuperficialita = 0
nLunghetteDaTrov = 1 ' Int(InputBox("Lunghette da trovare","Quantità lunghette",10))
nMoltip = 8
nRitMax = 0' Int(InputBox(sMsg,,nCicloTeo * nMoltip))
nRitMin = 0 ' Int(InputBox(sMsg,,nCicloTeo * 3))
Ini = fin - nRitMax
If Ini <= 0 Then Ini = 1
TimeStart = Timer
Call GetLunghettePiuRitardate(aN,aRuote,nClasseLunghetta,nSorte,CollComb,EstrazioneIni,estrazione,nRitMin,nRitMax,nLunghetteDaTrov,TipoAlgo,nSuperficialita)
Call OrdinaItemCollection(CollComb,"Ritardo",,,- 1)
For i2 = nClasseLunghetta To ClasseFin Step - 1
For Each cColonna In CollComb
Call GetLunghettePiuRitardate(cColonna.aNum,aRuote,i2,nSorte,CollComb,EstrazioneIni,estrazione,nRitMin,nRitMax,nLunghetteDaTrov,TipoAlgo,nSuperficialita)
For Each ccColonna In CollComb
Call StatisticaFormazioneTurbo(ccColonna.aNum,aRuote,nSorte,RetRit,RetRitMax,RetIncrRitMax,RetFrq,EstrazioneIni,estrazione)
If i2 = ClasseFin Then
Dim numeridaverificare
Dim ruotedaverificare
Call SplitByChar("." & ccColonna.GetStringaNum & ".",".",numeridaverificare)
Call SplitByChar("." & StringaNumeri(aRuote) & ".",".",ruotedaverificare)
Call VerificaEsitoTurbo(numeridaverificare,ruotedaverificare,estrazione + 1,sortediverifica,colpidiverifica,,esitoverifica,winalcolponumero,estrattiusciti,estrazionediuscita)
If esitoverifica <> "" Then
CloseFileHandle(estrapolaestratti)
Dim convertiesito
If esitoverifica = "Estratto" Then
convertiesito = 1
End If
If esitoverifica = "Ambo" Then
convertiesito = 2
End If
If esitoverifica = "Terno" Then
convertiesito = 3
End If
If esitoverifica = "Quaterna" Then
convertiesito = 4
End If
If esitoverifica = "Cinqina" Then
convertiesito = 5
End If
Select Case(convertiesito)
Case 1
esitoestratto = esitoestratto + 1
Case 2
esitoambo = esitoambo + 1
Case 3
esitoterno = esitoterno + 1
Case 4
esitoquaterna = esitoquaterna + 1
Case 5
esitocinquina = esitocinquina + 1
End Select
casipositivi = casipositivi + 1
If winalcolponumero > colpomassimo Then
colpomassimo = winalcolponumero
Dim colpomassimorelativo
colpomassimorelativo = colpomassimo
End If
Else
colpirimanentirispettocolpidiricerca = colpidiverifica -(EstrazioneFin - estrazione)
colpirimanentirispettocolpomassimo = colpomassimo -(EstrazioneFin - estrazione)
If colpirimanentirispettocolpidiricerca < 0 Then
' Scrivi "no"
casinegativi = casinegativi + 1
Else
Scrivi
Scrivi "<font color=blue>formazione " & StringaNumeri(numeridaverificare) & "</font>"
Scrivi "<font color=blue>ruote " & StringaNumeri(ruotedaverificare) & "</font>"
Scrivi "<font color=blue>colpi rimanenti rispetto colpi di ricerca " & colpirimanentirispettocolpidiricerca & "</font>"
Scrivi "<font color=blue>colpi rimanenti rispetto colpo massimo " & colpirimanentirispettocolpomassimo & "</font>"
Scrivi "<font color=blue>colpo massimo relativo " & colpomassimorelativo & "</font>"
Scrivi
casiattuali = casiattuali + 1
If colpirimanentirispettocolpidiricerca < colpirimanentiminimi Then
colpirimanentiminimi = colpirimanentirispettocolpidiricerca
Formazioneconcolpirimanentiminimi = StringaNumeri(numeridaverificare)
ruotaconcolpirimanentiminimi = StringaNumeri(ruotedaverificare)
End If
If colpirimanentirispettocolpomassimo < colpirimanentiminimi Then
colpirimanentiminimi = colpirimanentirispettocolpomassimo
Formazioneconcolpirimanentiminimi = StringaNumeri(numeridaverificare)
ruotaconcolpirimanentiminimi = StringaRuote(ruotedaverificare)
End If
End If
End If
End If
'------------------
'End If
Next
Next
Next
'Scrivi
If ScriptInterrotto Then Exit For
Next ' x estrazione
Scrivi
Scrivi "elaborazione con archivio aggiornato al " & GetInfoEstrazione(EstrazioneFin)
Scrivi "range temporale di analisi " & GetInfoEstrazione(EstrazioneIni) & " - " & GetInfoEstrazione(EstrazioneFin)
Scrivi "n. ultime estrazioni analizzate e verificate " & estrazionidaverificare '&(EstrazioneFin - EstrazioneIni) + 1
Scrivi "Estrazione inizio verifica " & GetInfoEstrazione(Inizioverifica)
Scrivi "Gruppo base analizzato " & StringaNumeri(aN)
Scrivi "gruppo base analizzato di classe " & UBound(aN)
Scrivi "sdr " & nSorte
Scrivi "sdv <b>" & sortediverifica & "</b>"
Scrivi "ci " & nClasseLunghetta
Scrivi "cf " & ClasseFin
Scrivi "c+ " & casipositivi
Scrivi "c- " & casinegativi
Scrivi "ca " & casiattuali
Scrivi "clp rim min <b>" & colpirimanentiminimi & "</b>"
Scrivi "formazione con clp rim min " & Formazioneconcolpirimanentiminimi
If ruotaconcolpirimanentiminimi <> "" Then ' And ruotaconcolpirimanentiminimi <> " " And ruotaconcolpirimanentiminimi <> Null Then
'ruotaconcolpirimanentiminimi = Mid(ruotaconcolpirimanentiminimi,2,Len(ruotaconcolpirimanentiminimi) - 2)
Scrivi "ruota con clp rim min <b>" & ruotaconcolpirimanentiminimi & "</b>"
End If
'ruotaconcolpirimanentiminimi = Right(ruotaconcolpirimanentiminimi,1)
'Scrivi "ruota con colpirimanenti minimi " & ruotaconcolpirimanentiminimi
'Scrivi "ruota con clp rim min <b>" & NomeRuota(Int(ruotaconcolpirimanentiminimi))&"</b>"
casitotali = casipositivi + casinegativi + casiattuali
Scrivi "ct " & casitotali
casitotali = casipositivi + casinegativi + casiattuali
If casipositivi <> "" Then
Scrivi "%+ " &(casipositivi/casitotali)*100
End If
Scrivi "cna " &(fin - Inizioverifica) - casitotali
Scrivi "clpmax " & colpomassimo
Scrivi
Scrivi "e : " & esitoestratto
Scrivi "a : " & esitoambo
Scrivi "t : " & esitoterno
Scrivi "q : " & esitoquaterna
Scrivi "c : " & esitocinquina
Scrivi "---------------------------"
Scrivi "tot : " & esitoestratto + esitoambo + esitoterno + esitoquaterna + esitocinquina
Scrivi
Call Scrivi("Tempo di elaborazione : " & TempoTrascorso) ' & FormattaSecondi(Timer - TimeStart))
End Sub
Function ScegliClassseLunghetta
Dim aVoci(30)
Dim k,i
For k = 2 To(2 - 1) + UBound(aVoci)
i = i + 1
aVoci(i) = k
Next
k = ScegliOpzioneMenu(aVoci,5,"Classe lunghetta")
ScegliClassseLunghetta = Int(aVoci(k))
End Function
Function SelRuote(aRuote)
Dim t,k,bTutte
bTutte = False
t = ScegliRuote(aRuote)
For k = 1 To t
If aRuote(k) = TT_ Then
bTutte = True
Exit For
End If
Next
If bTutte Then
ReDim aRuote(10)
For k = 1 To 10
aRuote(k) = k
Next
SelRuote = 10
Else
SelRuote = t
End If
End Function
Function SelEsito
Dim ret
Dim aVoci
' gli array partono sempre da 0
aVoci = Array("","Estratto","Ambo","Terno","Quaterna","Cinquina")
ret = ScegliOpzioneMenu(aVoci,1," Analisi per Sorte di : ")
SelEsito = ret
End Function
Function SelRuota
Dim ret
Dim aVoci
' gli Array partono sempre da 0
aVoci = Array("","BARI","CAGLIARI","FIRENZE","GENOVA","MILANO","NAPOLI","PALERMO","ROMA","TORINO","VENEZIA","TUTTE","NAZIONALE")
ret = ScegliOpzioneMenu(aVoci,3," Analizza Ruota di : ")
SelRuota = ret
End Function