Buongiorno Giancarlo, ho scritto molto su questo nuovo parametro, valido non solo per il lotto.
I numeri terminatori sono quei numeri che, su una delle 55 colonne determinate (per il gioco del lotto italiano), interrompono una serie di numeri tutti diversi in sequenza cronologica. Componendo un tabellone analitico di 90 numeri (sulle 11 ruote) anche per i terminatori, ti accorgerai che alcuni numeri "viaggiano (cronologicamente parlando)" insieme allo stesso numero che si trova nel tabellone analitico classico.
Questi numeri sono le varie lunghette che trovi come risultato dello script.
Ti scrivo qui sotto lo script per spaziometria di claudio8 che ringrazio sempre per avermi facilitato e velocizzato il criterio per metterli in evidenza (i numeri terminatori sono su fondo verde):
Option Explicit
Sub Main()
Dim Ru,coRu,co,x,y,z,W,cc,lu,coW,numTer,col,coT,insRP1,a,b,Tab_Ana,Coe,retPos,pos
Dim lunghetta(12,990)
Dim numLung(12,90)
Dim posLung(12,90)
Dim clpLung(12,90)
Dim aruote(2)
Dim aPos(1)
ReDim aNum(0)
ReDim aRit(0)
aruote(1) = 11
aruote(2) = 12
Dim esR,ini,fin,p,es,esc,rit,num,RuElab,esAn
Call PiuRitardatari(EstrazioneFin,aruote,aNum,,aRit)
Tab_Ana = CInt(InputBox(" Scrivo tabellone analitico delle singole ruote? " & Chr(13) & Chr(13) & " Scrivo = 1; NON scrivo = 0 o altro"," TABELLONE ANALITICO RUOTE ",0))
Coe = CInt(InputBox(" Scrivo i coestratti dei Terminatori?" & Chr(13) & Chr(13) & " Scrivo = 1; NON scrivo = 0 o altro ","TABELLONE TERMINATORI ",1))
esAn = aRit(1) 'CInt(InputBox(" Quantità estrazioni in analisi " & Chr(13) & Chr(13) & " Attuale Massimo Ritardo su TT e NZ","ESTRAZIONI In ANALISI",aRit(1)))
esc = 40'InputBox("Quante estrazioni di controllo Isotopia ","ESTRAZIONI di ISOTOPIA",40)
coRu =(Ru - 1)*5
ReDim ArchivioTerm(esAn + 1,60)
Scrivi " Tabellone Analitico Classico e Tabellone TERMINATORI di Micro - Script by Claudio8 - isotopia " & esc & " max rit. " & aRit(1) & " data elaborazione " & DataEstrazione(EstrazioneFin),1,,3,2,1
Scrivi " Data N°estr Rit ",1,False,6,,1
For Ru = 1 To 11
ArchivioTerm(0,(Ru - 1)*5 + 5) = SiglaRuota(Ru)
If Ru = 11 Then Ru = 12 : ArchivioTerm(0,(Ru - 2)*5 + 5) = SiglaRuota(Ru)
If Tab_Ana = 1 Then
Scrivi "|" & FormatSpace(SiglaRuota(Ru) & " Analitico Terminatore",33,False),1,False,6,,1
Else
Scrivi "|" & FormatSpace(SiglaRuota(Ru) & " Terminatore",16,False),1,False,6,,1
End If
Next
Scrivi
For W = esAn To 0 Step - 1
ArchivioTerm(W + 1,0) = W
If ScriptInterrotto Then Exit For
ini = EstrazioneFin - esc - W
ReDim Term(esc,55)
ReDim TermFin(1,55)
fin = EstrazioneFin - W
Call GeneraAnalitico(EstrazioneFin)
co = 0
For es = ini To fin - 1
co = co + 1
rit = esc - co + 1
For Ru = 1 To 11
coRu =(Ru - 1)*5
If Ru = 11 Then Ru = 12
For p = 1 To 5
For esR = es + 1 To fin
If Estratto(esR,Ru,p) = Estratto(es,Ru,p) Then Term(co,coRu + p) = Estratto(esR,Ru,p)
Next
Next
Next
Next
For z = 1 To coRu + p - 1
For y =(esc) To 1 Step - 1
If Term(y,z) > 0 Then
TermFin(1,z) = Term(y,z)
Exit For
End If
Next
Next
Scrivi DataEstrazione(es) & " [" & es & "] " & FormatSpace(W,3,1) & " | ",1,False,,,1
For Ru = 1 To 11
coRu =(Ru - 1)*5
If Ru = 11 Then Ru = 12
If Tab_Ana = 1 Then
For p = 1 To 5
If W <= aRit(1) Then
num =(TabelloneAnalitico(W,Ru,p))
If num > 0 Then
Scrivi FormatSpace(num,2,True) & " ",,False,,,1
Else
Scrivi "-- ",,False,,,1
End If
Else
Scrivi ".. ",,False,,,1
End If
If p = 5 Then Scrivi "| ",1,False,,,1
Next '
End If
For p = 1 To 5
cc = 0
If W <= aRit(1) Then
For es = fin - 1 To ini Step - 1
If Estratto(fin,Ru,p) = TermFin(1,coRu + p) Then
cc = cc + 1
End If
Next
If cc > 0 And Estratto(fin,Ru,p) = TabelloneAnalitico(W,Ru,p) Then
Scrivi FormatSpace((Estratto(fin,Ru,p)),2,True),1,False,vbGreen,,1
ArchivioTerm(W + 1,coRu + p) = Estratto(fin,Ru,p)
lu = lu + 1
lunghetta(Ru,0) = SiglaRuota(Ru)
lunghetta(Ru,lu) = Estratto(fin,Ru,p)
ElseIf cc > 0 Then
Scrivi FormatSpace((Estratto(fin,Ru,p)),2,True),1,False,,,1
ArchivioTerm(W + 1,coRu + p) = Estratto(fin,Ru,p)
Else
If Coe = 1 Then
Scrivi FormatSpace((Estratto(fin,Ru,p)),2,True),,False,,6,1
Else
Scrivi FormatSpace("..",2,True),,False,,,1
End If
End If
If p < 5 Then Scrivi " ",1,False,,,1
If p = 5 Then Scrivi " | ",1,False,,,1
Else
For es = fin - 1 To ini Step - 1
If Estratto(fin,Ru,p) = TermFin(1,coRu + p) Then
cc = cc + 1 '''''''
End If
Next
If cc > 0 Then
Scrivi FormatSpace((Estratto(fin,Ru,p)),2,True),1,False,,,1
ArchivioTerm(W + 1,coRu + p) = Estratto(fin,Ru,p)
Else
If Coe = 1 Then
Scrivi FormatSpace((Estratto(fin,Ru,p)),2,True),,False,,6,1
Else
Scrivi FormatSpace("..",2,True),,False,,,1
End If
End If
Scrivi " ",,False
If p = 5 Then Scrivi "| ",,False,,,1
End If
Next
Next
Scrivi
Messaggio " Data estrazione - " & DataEstrazione(EstrazioneFin - W) & " - estr.da analizzare " & W
AvanzamentoElab 0,esAn,W
Next
Messaggio " Scrittura output - estrazione finale " & DataEstrazione(EstrazioneFin) & " - analizzate " & aRit(1)
Scrivi " Data N°estr Rit ",1,False,6,,1
'Scrivi " Data N°estr Rit ",1,False,6,,1
For Ru = 1 To 11
If Ru = 11 Then Ru = 12
If Tab_Ana = 1 Then
Scrivi "|" & FormatSpace(SiglaRuota(Ru) & " Analitico Terminatore",33,False),1,False,6,,1
Else
Scrivi "|" & FormatSpace(SiglaRuota(Ru) & " Terminatore",16,False),1,False,6,,1
End If
co = 1
For x = 1 To UBound(lunghetta,2)
If lunghetta(Ru,x) > 0 Then
co = co + 1
numLung(Ru,co) = lunghetta(Ru,x)
numLung(Ru,0) = Ru
End If
Next
Next
Scrivi
Scrivi
Scrivi " Lunghette Terminatori " & String(12," ") & " Estrazioni analizzate : " & FormatSpace(esAn,4,1) & " al " & DataEstrazione(EstrazioneFin) & " Indice " & EstrazioneFin,1,1,3,2,1
For Ru = 1 To 11
AvanzamentoElab 0,11,Ru
If Ru = 11 Then Ru = 12
co = 0
Scrivi FormatSpace("PostoD",12,True) & " : ",1,False,,,1
For x = 2 To UBound(numLung,2)
If numLung(Ru,x) > 0 Then
co = co + 1
If co = 1 Then numLung(Ru,1) = RitardoEstratto(numLung(Ru,x),EstrazioneFin,Ru)
pos = RitardoEstratto(numLung(Ru,x),EstrazioneFin,Ru,,retPos)
If RitardoEstratto(numLung(Ru,x),EstrazioneFin,Ru) = RitardoEstratto(numLung(Ru,x + 1),EstrazioneFin,Ru) Or RitardoEstratto(numLung(Ru,x),EstrazioneFin,Ru) = RitardoEstratto(numLung(Ru,x - 1),EstrazioneFin,Ru)Then
ColoreTesto 2
Scrivi FormatSpace(retPos & "°",3,True) & " ",,False,,,1
posLung(Ru,x) = retPos
Else
Scrivi FormatSpace(retPos & "°",3,True) & " ",,False,,,1
posLung(Ru,x) = retPos
End If
End If
ColoreTesto 0
Next
Scrivi String((92 - co*4),".") & " POSIZIONI",1,,,,1 ' ex 84
co = 0
Scrivi FormatSpace(NomeRuota(Ru),12,True) & " : ",1,False,4,,1
For x = 2 To UBound(numLung,2)
If numLung(Ru,x) > 0 Then
co = co + 1
If RitardoEstratto(numLung(Ru,x),EstrazioneFin,Ru) = RitardoEstratto(numLung(Ru,x + 1),EstrazioneFin,Ru) Or RitardoEstratto(numLung(Ru,x),EstrazioneFin,Ru) = RitardoEstratto(numLung(Ru,x - 1),EstrazioneFin,Ru)Then
ColoreTesto 2
Scrivi FormatSpace(numLung(Ru,x),3,True) & " ",1,False,4,,1
Else
Scrivi FormatSpace(numLung(Ru,x),3,True) & " ",1,False,4,,1
End If
End If
ColoreTesto 0
Next
Scrivi String((92 - co*4),".") & Format2(co) & " Numeri",1,,,,1 ' ex 84
co = 0
Scrivi FormatSpace("Rit.",12,True) & " : ",1,False,,,1
For x = 2 To UBound(numLung,2)
If numLung(Ru,x) > 0 Then
co = co + 1
If co = 1 Then numLung(Ru,1) = RitardoEstratto(numLung(Ru,x),EstrazioneFin,Ru)
If RitardoEstratto(numLung(Ru,x),EstrazioneFin,Ru) = RitardoEstratto(numLung(Ru,x + 1),EstrazioneFin,Ru) Or RitardoEstratto(numLung(Ru,x),EstrazioneFin,Ru) = RitardoEstratto(numLung(Ru,x - 1),EstrazioneFin,Ru)Then
ColoreTesto 2
Scrivi FormatSpace(RitardoEstratto(numLung(Ru,x),EstrazioneFin,Ru),3,True) & " ",,False,,,1
Else
Scrivi FormatSpace(RitardoEstratto(numLung(Ru,x),EstrazioneFin,Ru),3,True) & " ",,False,,,1
End If
End If
ColoreTesto 0
Next
Scrivi String((92 - co*4),".") & " RC",1,,,,1 'ex 84
co = 0
ReDim numVer(90)
ReDim ruoVer(12)
Dim retClp
Scrivi FormatSpace("clp1°Esito",12,True) & " : ",1,False,,,1 ' x silop in questa riga, se vuoi modificare clpEsito a tuo piacere, max 12 caratteri compreso spaziature
For x = 2 To UBound(numLung,2)
If numLung(Ru,x) > 0 Then
co = co + 1
numVer(1) = numLung(Ru,x)
ruoVer(1) = Ru
If VerificaEsitoTurbo(numVer,ruoVer,EstrazioneFin + 1,1,(EstrazioniArchivio - EstrazioneFin),,,retClp) = True Then
Scrivi FormatSpace(retClp,3,True) & " ",1,False,,,1
clpLung(Ru,x) = retClp
Else
Scrivi FormatSpace("--",3,True) & " ",1,False,,,1 ' sostiuito ng con --
clpLung(Ru,x) = 0
End If
End If
Next
Scrivi String((92 - co*4),".") & " Clp di Risortita",1,,,,1 ' ex 84
co = 0
Scrivi FormatSpace("pos1°Esito",12,True) & " : ",1,False,,,1
For x = 2 To UBound(numLung,2)
If numLung(Ru,x) > 0 Then
co = co + 1
If clpLung(Ru,x) > 0 Then
If Posizione(EstrazioneFin + clpLung(Ru,x),Ru,numLung(Ru,x)) = posLung(Ru,x) Then
Scrivi FormatSpace("D",3,True) & " ",1,False,,2,1 'De
Else
Scrivi FormatSpace("S",3,True) & " ",1,False,,,1 'Se
End If
Else
Scrivi FormatSpace("--",3,True) & " ",1,False,,,1
End If
End If
Next
Scrivi String((92 - co*4),".") & " POSIZIONE semplice/Determinata",1,,,,1 ' ex 84
Scrivi ' serve a lasciare una riga vuota tra le ruote
Next '
Scrivi
If EstrazioneFin = EstrazioniArchivio Then
Scrivi " TERMINATORI risortiti al 1° colpo per Tabellone Analitico TT + Naz non aggionabile, estrazioni successive inesistenti in archivio",1
Else
Messaggio " Elaborazione e Scrittura output - terminatori risortiti " & DataEstrazione(EstrazioneFin)
Scrivi " Sunto TERMINATORI risortiti al 1° colpo per aggiornamento Tabellone Analitico TT + Naz",1
Scrivi "Data Risortita N°es Rit ",1,False,6,,1
For Ru = 1 To 12
If Ru = 11 Then Ru = 12
Scrivi "| " & FormatSpace(SiglaRuota(Ru) & " Te ",15,False),1,False,6,,1
Next
Scrivi
Scrivi DataEstrazione(EstrazioneFin + 1,,,"/") & " " & FormatSpace(EstrazioneFin + 1,5,1) & " " & FormatSpace(EstrazioniArchivio - EstrazioneFin,3,1) & " | ",1,False,,,1
For Ru = 1 To 12
AvanzamentoElab 0,11,Ru
If Ru = 11 Then Ru = 12
''''' numeri delle lunghette esitate e posiz di esito
For p = 1 To 5
co = 0
a = Estratto(EstrazioneFin + 1,Ru,p)
For x = 2 To UBound(numLung,2)
If numLung(Ru,x) > 0 And numLung(Ru,x) = a Then
Scrivi FormatSpace(a,2,True),1,False,,,1
co = co + 1
Exit For
End If
Next
If co = 0 Then Scrivi "--",1,False,,,1
If p < 5 Then Scrivi " ",1,False,,,1
If p = 5 Then Scrivi " | ",1,False,,,1
Next
Next
Scrivi
Scrivi "Data Risortita N°es Rit ",1,False,6,,1
For Ru = 1 To 12
If Ru = 11 Then Ru = 12
Scrivi "| " & FormatSpace(SiglaRuota(Ru) & " Te ",15,False),1,False,6,,1
Next
End If
Scrivi
Scrivi " Tempo Trascorso : " & TempoTrascorso,1,,,,1
End Sub
Fammi sapere dove trovi (se le trovi) delle difficoltà dopodichè si può discutere su come ottimizzare le nostre conoscenze con altri parametri da affiancare.
ciao
micro_