Option Explicit
Sub Main()
' GAM - 18.08.2020 - v 2.0 con TABELLA ORDINABILE (realizzato su richiesta di @miki55 -
https://lottogam.forumfree.it/?t=77817968 ' Lo script scandaglia l'archivio per rilevare la presenza di un estratto Isocrono su coppia di ruote in estrazioni continue
' Se tale condizione è rilevata lo script calcola il ritardo raggiunto dall'estratto su entrambe le ruote, il Ritardo Minimo, il Ritardo di Livello, ovvero il ritardo dell'Ambata Residua
' E' possibile impostare un Ritardo Minimo di ricerca (RitMinRic) per restringere i casi in gioco.
' E' possibile impostare un Ritardo Precedente su ciascuna ruota per restringere i casi in gioco.
Dim rr1(1),rr2(1),rit1(1),rit2(1),Num(1),Min,RitMinRic
Dim Ini,Fin,LivArch,V,T
Dim es,rt,a,b,a1,b1,r1,r2,p1,p2,Caso,RitPrecR1,RitPrecR2,RitPrec_su_R1,RitPrec_su_R2
Ini = EstrazioneFin -1000
Fin = EstrazioneFin
RitMinRic = 18
RitPrecR1 = 18
RitPrecR2 = 18
T = Array(T,"id_R1","Data","R1","Estratti_R1","id_R2","Data","R2","Estratti_R2","Num","R1","Pos","R2","Pos","RitR1","RitR2","RitMin","RdL","RitPrecR1","RitPrecR2","LivArch","***")
Call InitTabella(T)
For LivArch = 0 To 0
For es = Ini To Fin - 1
If ScriptInterrotto Then Exit For
Messaggio(es & " - L" & LivArch)
AvanzamentoElab Ini,Fin,es
For r1 = 1 To 10
For r2 = r1 + 1 To 12 ' se metti apice ed elimini ciclo For (incluso il next a fine listato) togli da qui sotto, solo casi su ruote contigue
'r2= r1 + 1
If r2 = 11 Then r2 = 12
For p1 = 1 To 5
For p2 = 1 To 5
a = Estratto(es,r1,p1,LivArch)
b = Estratto(es + 1,r2,p2,LivArch)
a1 = Estratto(es + 1,r1,p1,LivArch)
b1 = Estratto(es,r2,p2,LivArch)
If a = b Then
Num(1) = a
rr1(1) = r1
rr2(1) = r2
rit1(1) = SeriePrima(es + 2,EstrazioneFin,Num,rr1,1,,,LivArch)
rit2(1) = SeriePrima(es + 2,EstrazioneFin,Num,rr2,1,,,LivArch)
RitPrec_su_R1 = SerieRitardo(es - 300,es - 1,Num,rr1,1,,,LivArch)
RitPrec_su_R2 = SerieRitardo(es - 300,es,Num,rr2,1,,,LivArch)
If es < Fin - 1 Then
If rit1(1) > 0 And rit2(1) > 0 Then
rit1(1) = rit1(1) - es - 1
rit2(1) = rit2(1) - es - 1
Min = Minimo(rit1(1),rit2(1))
If Min > RitMinRic And RitPrec_su_R1 > RitPrecR1 And RitPrec_su_R2 > RitPrecR2 Then
Caso = Caso + 1
V = Array(V,FormattaStringa(es,"0000"),DataEstrazione(es),SiglaRuota(r1),StringaEstratti(es,r1,,,LivArch),FormattaStringa(es + 1,"0000"),DataEstrazione(es + 1),SiglaRuota(r2),StringaEstratti(es + 1,r2,,,LivArch),Format2(a),SiglaRuota(r1),p1,SiglaRuota(r2),p2,FormattaStringa(rit1(1),"000") & " Sto",FormattaStringa(rit2(1),"000") & " Sto",FormattaStringa(Minimo(rit1(1),rit2(1)),"000") & " Sto",FormattaStringa(Massimo(rit1(1),rit2(1)) - Minimo(rit1(1),rit2(1)),"000") & " Sto",FormattaStringa(RitPrec_su_R1,"000"),FormattaStringa(RitPrec_su_R2,"000"),LivArch,"")
Call AddRigaTabella(V)
End If
Else
If rit1(1) > 0 And rit2(1) = 0 Then
rit1(1) = rit1(1) - es - 1
rit2(1) = EstrazioneFin - es
Min = Minimo(rit1(1),rit2(1))
If Min > RitMinRic And RitPrec_su_R1 > RitPrecR1 And RitPrec_su_R2 > RitPrecR2 Then
Caso = Caso + 1
V = Array(V,FormattaStringa(es,"0000"),DataEstrazione(es),SiglaRuota(r1),StringaEstratti(es,r1,,,LivArch),FormattaStringa(es + 1,"0000"),DataEstrazione(es + 1),SiglaRuota(r2),StringaEstratti(es + 1,r2,,,LivArch),Format2(a),SiglaRuota(r1),p1,SiglaRuota(r2),p2,FormattaStringa(rit1(1),"000") & " Sto",FormattaStringa(rit2(1),"000") & " Att",FormattaStringa(Minimo(rit1(1),rit2(1)),"000") & " Sto",FormattaStringa(Massimo(rit1(1),rit2(1)) - Minimo(rit1(1),rit2(1)),"000") & " Att",FormattaStringa(RitPrec_su_R1,"000"),FormattaStringa(RitPrec_su_R2,"000"),LivArch,"*")
Call AddRigaTabella(V)
Call SetColoreCella(21,1,5)
End If
Else
If rit1(1) = 0 And rit2(1) > 0 Then
rit2(1) = rit2(1) - es - 1
rit1(1) = EstrazioneFin - es
Min = Minimo(rit1(1),rit2(1))
If Min > RitMinRic And RitPrec_su_R1 > RitPrecR1 And RitPrec_su_R2 > RitPrecR2 Then
Caso = Caso + 1
V = Array(V,FormattaStringa(es,"0000"),DataEstrazione(es),SiglaRuota(r1),StringaEstratti(es,r1,,,LivArch),FormattaStringa(es + 1,"0000"),DataEstrazione(es + 1),SiglaRuota(r2),StringaEstratti(es + 1,r2,,,LivArch),Format2(a),SiglaRuota(r1),p1,SiglaRuota(r2),p2,FormattaStringa(rit1(1),"000") & " Att",FormattaStringa(rit2(1),"000") & " Sto",FormattaStringa(Minimo(rit1(1),rit2(1)),"000") & " Sto",FormattaStringa(Massimo(rit1(1),rit2(1)) - Minimo(rit1(1),rit2(1)),"000") & " Att",FormattaStringa(RitPrec_su_R1,"000"),FormattaStringa(RitPrec_su_R2,"000"),LivArch,"*")
Call AddRigaTabella(V)
Call SetColoreCella(21,1,5)
End If
Else
If rit1(1) = 0 And rit2(1) = 0 Then
rit2(1) = EstrazioneFin - es
rit1(1) = EstrazioneFin - es
Min = Minimo(rit1(1),rit2(1))
If Min > RitMinRic And RitPrec_su_R1 > RitPrecR1 And RitPrec_su_R2 > RitPrecR2 Then
Caso = Caso + 1
V = Array(V,FormattaStringa(es,"0000"),DataEstrazione(es),SiglaRuota(r1),StringaEstratti(es,r1,,,LivArch),FormattaStringa(es + 1,"0000"),DataEstrazione(es + 1),SiglaRuota(r2),StringaEstratti(es + 1,r2,,,LivArch),Format2(a),SiglaRuota(r1),p1,SiglaRuota(r2),p2,FormattaStringa(rit1(1),"000") & " Att",FormattaStringa(rit2(1),"000") & " Att",FormattaStringa(Minimo(rit1(1),rit2(1)),"000") & " Att","---",FormattaStringa(RitPrec_su_R1,"000"),FormattaStringa(RitPrec_su_R2,"000"),LivArch,"***")
Call AddRigaTabella(V)
Call SetColoreCella(21,2,5)
End If
End If
End If
End If
End If
Else
rit2(1) = EstrazioneFin - es
rit1(1) = EstrazioneFin - es
Min = Minimo(rit1(1),rit2(1))
If Min > RitMinRic And RitPrec_su_R1 > RitPrecR1 And RitPrec_su_R2 > RitPrecR2 Then
Caso = Caso + 1
V = Array(V,FormattaStringa(es,"0000"),DataEstrazione(es),SiglaRuota(r1),StringaEstratti(es,r1,,,LivArch),FormattaStringa(es + 1,"0000"),DataEstrazione(es + 1),SiglaRuota(r2),StringaEstratti(es + 1,r2,,,LivArch),Format2(a),SiglaRuota(r1),p1,SiglaRuota(r2),p2,FormattaStringa(rit1(1),"000") & " Att",FormattaStringa(rit2(1),"000") & " Att",FormattaStringa(Minimo(rit1(1),rit2(1)),"000") & " Att","---",FormattaStringa(RitPrec_su_R1,"000"),FormattaStringa(RitPrec_su_R2,"000"),LivArch,"***")
Call AddRigaTabella(V)
Call SetColoreCella(21,2,5)
End If
End If
Else
If a1 = b1 Then
Num(1) = a1
rr1(1) = r1
rr2(1) = r2
rit1(1) = SeriePrima(es + 2,EstrazioneFin,Num,rr1,1,,,LivArch)
rit2(1) = SeriePrima(es + 2,EstrazioneFin,Num,rr2,1,,,LivArch)
RitPrec_su_R1 = SerieRitardo(es - 300,es,Num,rr1,1,,,LivArch)
RitPrec_su_R2 = SerieRitardo(es - 300,es - 1,Num,rr2,1,,,LivArch)
If es < Fin - 1 Then
If rit1(1) > 0 And rit2(1) > 0 Then
rit1(1) = rit1(1) - es - 1
rit2(1) = rit2(1) - es - 1
Min = Minimo(rit1(1),rit2(1))
If Min > RitMinRic And RitPrec_su_R1 > RitPrecR1 And RitPrec_su_R2 > RitPrecR2 Then
Caso = Caso + 1
V = Array(V,FormattaStringa(es,"0000"),DataEstrazione(es),SiglaRuota(r2),StringaEstratti(es,r2,,,LivArch),FormattaStringa(es + 1,"0000"),DataEstrazione(es + 1),SiglaRuota(r1),StringaEstratti(es + 1,r1,,,LivArch),Format2(a1),SiglaRuota(r2),p2,SiglaRuota(r1),p1,FormattaStringa(rit1(1),"000") & " Sto",FormattaStringa(rit2(1),"000") & " Sto",FormattaStringa(Minimo(rit1(1),rit2(1)),"000") & " Sto",FormattaStringa(Massimo(rit1(1),rit2(1)) - Minimo(rit1(1),rit2(1)),"000") & " Sto",FormattaStringa(RitPrec_su_R1,"000"),FormattaStringa(RitPrec_su_R2,"000"),LivArch,"")
Call AddRigaTabella(V)
End If
Else
If rit1(1) > 0 And rit2(1) = 0 Then
rit1(1) = rit1(1) - es - 1
rit2(1) = EstrazioneFin - es
Min = Minimo(rit1(1),rit2(1))
If Min > RitMinRic And RitPrec_su_R1 > RitPrecR1 And RitPrec_su_R2 > RitPrecR2 Then
Caso = Caso + 1
V = Array(V,FormattaStringa(es,"0000"),DataEstrazione(es),SiglaRuota(r2),StringaEstratti(es,r2,,,LivArch),FormattaStringa(es + 1,"0000"),DataEstrazione(es + 1),SiglaRuota(r1),StringaEstratti(es + 1,r1,,,LivArch),Format2(a1),SiglaRuota(r2),p2,SiglaRuota(r1),p1,FormattaStringa(rit1(1),"000") & " Sto",FormattaStringa(rit2(1),"000") & " Att",FormattaStringa(Minimo(rit1(1),rit2(1)),"000") & " Sto",FormattaStringa(Massimo(rit1(1),rit2(1)) - Minimo(rit1(1),rit2(1)),"000") & " Att",FormattaStringa(RitPrec_su_R1,"000"),FormattaStringa(RitPrec_su_R2,"000"),LivArch,"*")
Call AddRigaTabella(V)
Call SetColoreCella(21,1,5)
End If
Else
If rit1(1) = 0 And rit2(1) > 0 Then
rit2(1) = rit2(1) - es - 1
rit1(1) = EstrazioneFin - es
Min = Minimo(rit1(1),rit2(1))
If Min > RitMinRic And RitPrec_su_R1 > RitPrecR1 And RitPrec_su_R2 > RitPrecR2 Then
Caso = Caso + 1
V = Array(V,FormattaStringa(es,"0000"),DataEstrazione(es),SiglaRuota(r2),StringaEstratti(es,r2,,,LivArch),FormattaStringa(es + 1,"0000"),DataEstrazione(es + 1),SiglaRuota(r1),StringaEstratti(es + 1,r1,,,LivArch),Format2(a1),SiglaRuota(r2),p2,SiglaRuota(r1),p1,FormattaStringa(rit1(1),"000") & " Att",FormattaStringa(rit2(1),"000") & " Sto",FormattaStringa(Minimo(rit1(1),rit2(1)),"000") & " Sto",FormattaStringa(Massimo(rit1(1),rit2(1)) - Minimo(rit1(1),rit2(1)),"000") & " Att",FormattaStringa(RitPrec_su_R1,"000"),FormattaStringa(RitPrec_su_R2,"000"),LivArch,"*")
Call AddRigaTabella(V)
Call SetColoreCella(21,1,5)
End If
Else
If rit1(1) = 0 And rit2(1) = 0 Then
rit2(1) = EstrazioneFin - es
rit1(1) = EstrazioneFin - es
Min = Minimo(rit1(1),rit2(1))
If Min > RitMinRic And RitPrec_su_R1 > RitPrecR1 And RitPrec_su_R2 > RitPrecR2 Then
Caso = Caso + 1
V = Array(V,FormattaStringa(es,"0000"),DataEstrazione(es),SiglaRuota(r2),StringaEstratti(es,r2,,,LivArch),FormattaStringa(es + 1,"0000"),DataEstrazione(es + 1),SiglaRuota(r1),StringaEstratti(es + 1,r1,,,LivArch),Format2(a1),SiglaRuota(r2),p2,SiglaRuota(r1),p1,FormattaStringa(rit1(1),"000") & " Att",FormattaStringa(rit2(1),"000") & " Att",FormattaStringa(Minimo(rit1(1),rit2(1)),"000") & " Att","---",FormattaStringa(RitPrec_su_R1,"000"),FormattaStringa(RitPrec_su_R2,"000"),LivArch,"***")
Call AddRigaTabella(V)
Call SetColoreCella(21,2,5)
End If
End If
End If
End If
End If
Else
rit2(1) = EstrazioneFin - es
rit1(1) = EstrazioneFin - es
Min = Minimo(rit1(1),rit2(1))
If Min > RitMinRic And RitPrec_su_R1 > RitPrecR1 And RitPrec_su_R2 > RitPrecR2 Then
Caso = Caso + 1
V = Array(V,FormattaStringa(es,"0000"),DataEstrazione(es),SiglaRuota(r2),StringaEstratti(es,r2,,,LivArch),FormattaStringa(es + 1,"0000"),DataEstrazione(es + 1),SiglaRuota(r1),StringaEstratti(es + 1,r1,,,LivArch),Format2(a1),SiglaRuota(r2),p2,SiglaRuota(r1),p1,FormattaStringa(rit1(1),"000") & " Att",FormattaStringa(rit2(1),"000") & " Att",FormattaStringa(Minimo(rit1(1),rit2(1)),"000") & " Att","---",FormattaStringa(RitPrec_su_R1,"000"),FormattaStringa(RitPrec_su_R2,"000"),LivArch,"***")
Call AddRigaTabella(V)
Call SetColoreCella(21,2,5)
End If
End If
End If
End If
Next
Next
Next
Next ' da togliere per ruote contigue
Next
Next
Call CreaTabellaOrdinabile(16,0,0,(Caso + 1),0,True,True)
Scrivi Caso
Scrivi TempoTrascorso
End Sub