Novità

Questa idea... la butto là... e semmai la ri_huppo... a befana... =)

lotto_tom75

Advanced Premium Member
Altro script già anticipato nel post dello scopadelico...
Analogo a quello scopadelico ma questa volta dedicato al superenalotto... :p :eek: :rolleyes: LuigiB e i legend oltre alla vostra nuova intrigante missione che ho intravisto... avreste voglia di fare anche questo? Per tentare di fare il boom con un bel 5 al superenalotto per la fine dell'anno invece di aspettare befana... :D :D :D ahahah
Ps: Credo basti... modificare lo scopadelico già da voi magicamente realizzato cambiando in qualche modo l'archivio numerico e aggiungere un campo estratto... ma qui mi fermo.. :o Grazie comunque mitici friends ;)
 
Ultima modifica:
Ciao Tom ..io su questo script non ci sono. Sara la prova del fuoco del bravo legend. Ogni programmatore prima o poi si ritrova solo a risolvere i problemi che gli si presentano e cosi dovra essere anche per Legend...
 
Ciao tom credo che sistemi virtuali non esista per superEnalotto
. Bisognerà riscrivere Ka init per i parametri diversi.
Se non ti spiace ora ho pochissimo tempo,e preferirei concentrarmi sul nuovo script di luigi per imparare qualcosa jn più.
Non ho tempo di rifarmi neanche i miei script.dopo la formattazioni non ne ho neanche uno.
I miei sommativi:(
Appena ho un momento mi ci metto:)
Ciao:)
 
Nessunissimo problema amici :) come ho scritto nel titolo eventualmente lo ri_huppo... a befana :D .Ad ogni modo non mi interesserebbero gli archivi virtuali ma solo la versione "nuda" dello script scopadelico senza di quelli con l'archivio base del superenalotto anzichè del lotto e con 6 numeri da analizzare al posto dei 5 attuali per il lotto. Credevo fosse più semplice ma a quanto pare è molto impegnativo anche questo e mi scuso per avervi sconcentrato seppur per pocchissimi minuti :p dalla vostra nuova fantastica mission! Vi seguo sempre grandissimi e un grosso in bocca al lupo per il vostro nuovissimo script ideato e diretto dal Maestro in persona e go go go! ;)
 
Ultima modifica:
Tom sono appena arrivato a casa e poi stasera bo cu sono se riesco in un ora te lo posto :0
Ciao:)
Non so se è così difficile mai usato una funzione per il super na ci provo
A dopo
 
Ciao grazie magia.
Ci credi se ti dico che Ero diventato scemo prima di mettere inixio=1
Fine=estrazione archivi se
Ciao :)
Visto tom niente befana
 
Ciao ho dato un'occhiata veloce mi sembra Che Magia ed Amaretto abbiano fatto bene .. una sola osservazione , la nuova funzione ScegliRange che ho visto non presente si puo usare pure per il superenalotto , basta passare l'apposito parametro (vedere l'help) nel lotto non si passa perche per default la funzion è per il lotto.
Usando questa funzioen l'utente puo facilmente impostare il range di analisi tramite interfaccia
 
magia;n1942775 ha scritto:
Buonanote,
Visto che i " Bravi " sonoimpegnati altrove, posto il listato modificato per il Superenalotto.
Se ci sono errori e' colpa esclusivamente di amretto , che in questo campo e? un ignorante.
Controllare prego.
Codice:
Option Explicit
' Script Da Verificare
' Eliminate i filtri di nClasse x sistemi casuali .Il P.C con un elevato numero di combinazioni
' potrebbe impallarsi, anzi lo farà sicuramente
' Inserita funzione per trasformare i numeri virtuali( forse e solo Parziale e non generale)
' Un Grande grazie a Tom Richiedente lo script
' Un Grande grazie a silop che ha ampliato la ricerca con le sue conoscenze
' Un Grandissimo grazie a Luigi per i suoi INSEGNAMENTI
' Un grande saluto da I Legend [ aiutante:)]
Class clsLunghetta
Private aNumeri ' contiene i numeri della lunghetta
Private mInizio,mFine,mSorte ' parametri per il range analisi
Private mClasse ' contine la classe della lunghetta
Private aElencoRit ' conterra l'elenco dei ritardi per la lunghetta
Private aIdEstrElencoRit ' conterra l'elenco dei ritardi per la lunghetta
Private aElencoIncrRitMax ' contiene l'elnco degli incrementi del ritardo max
Private aIdEstrIncrRitMax ' conterra l'elenco degli id estrazione in
' cui si è registrato l'incremento del ritmax conosciuto
Private aRitardiAllIncremento ' contiene il valore del ritardo all'idestrazione in cui
' si è verificato l'incremento
Private mRitardo,mRitardoMax,mIncrRitMax,mFrequenza ' valori statistici
Private mIncrRitardoMaxSto,mStrIncRitSto
'Private mDist,mbPrimaEstrFissa
Public Property Get iNumIncrementi
iNumIncrementi = UBound(aElencoIncrRitMax)
End Property
Public Property Get IncrRitMaxSto
IncrRitMaxSto = mIncrRitardoMaxSto
End Property
Public Property Get strIncRitMaxSto
strIncRitMaxSto = mStrIncRitSto
End Property
Public Property Get Ritardo
Ritardo = mRitardo
End Property
Public Property Get RitardoMax
RitardoMax = mRitardoMax
End Property
Public Property Get IncrRitMax
IncrRitMax = mIncrRitMax
End Property
Public Property Get Frequenza
Frequenza = mFrequenza
End Property
Public Property Get LunghettaString
LunghettaString = StringaNumeri(aNumeri)
End Property
' inizializza le proprietà dell'oggetto
Sub Init(sLunghetta,sChrSep,RangeInizio,RangeFine,SorteInGioco)
' acquisisco i parametri per l'analisi
mInizio = RangeInizio
mFine = RangeFine
mSorte = SorteInGioco
' alimento il vettore con i numeri della lunghetta
Call AlimentaVettoreLunghetta(sLunghetta,sChrSep)
' calcolo l'elenco dei ritardi
Call ElencoRitardiSE(aNumeri,mSorte,mInizio,mFine,aElencoRit,aIdEstrElencoRit)
' alimento il vettore che contien l'elenco degli incrementi rit max
Call AlimentaVettoreIncrRitMax
End Sub
' esegue il calcolo dei valori statistici della lunghetta
Sub EseguiStatistica
Call StatisticaFormazioneSE(aNumeri,mSorte,mRitardo,mRitardoMax,mIncrRitMax,mFrequenza,mInizio,mFine)
End Sub
Private Sub AlimentaVettoreLunghetta(sLunghetta,sChrSep)
Dim k
If IsArray(sLunghetta) Then
' se la lunghetta è gia un array lo copio nel vettore locale dei numeri
ReDim aNumeri(UBound(sLunghetta))
For k = 1 To UBound(sLunghetta)
aNumeri(k) = sLunghetta(k)
Next
Else
' antepongo un carattere separatore per fare in modo che
' aNumeri si valorizzi dall'indice 1 (senno si sarebeb valorizzato dall'indice 0)
Call SplitByChar((sChrSep & sLunghetta),sChrSep,aNumeri)
End If
' valorizzo la classe della lunghetta
mClasse = UBound(aNumeri)
End Sub
Private Sub AlimentaVettoreIncrRitMax
Dim nRitMax,nIncr,nId,k
nId = 0
' inizializzo il vettore a 0 elementi
ReDim aElencoIncrRitMax(0)
ReDim aIdEstrIncrRitMax(0)
ReDim aRitardiAllIncremento(0)
' ciclo sul vettore dei ritardi
For k = 1 To UBound(aElencoRit)
' se il ritardo corrente supera il ritmax attuale..
If aElencoRit(k) > nRitMax Then
If nRitMax > 0 Then
' se il ritmax attuale è >0 (ivvero ne esiste uno)
' calcolo di quanto si è incrementato
nIncr = aElencoRit(k) - nRitMax
' incremento il contatore dei valori trovati
nId = nId + 1
' ridimensiono il vettore mantenendo i valori precedenti ma
' aggiungendone uno
ReDim Preserve aElencoIncrRitMax(nId)
' memorizzo il valore
aElencoIncrRitMax(nId) = nIncr
' ridimensiono il vettore mantnendo i valori precedenti ma
' aggiungendone uno
ReDim Preserve aIdEstrIncrRitMax(nId)
' memorizzo l'id dell'estrazione dove si è avuto l'incremento
aIdEstrIncrRitMax(nId) = aIdEstrElencoRit(k)
' ridimensiono il vettore mantnendo i valori precedenti ma
' aggiungendone uno
ReDim Preserve aRitardiAllIncremento(nId)
' memorizzo il valore del ritardo all'id dell'estrazione dove si è avuto l'incremento
aRitardiAllIncremento(nId) = aElencoRit(k)
End If
nRitMax = aElencoRit(k)
End If
Next
mStrIncRitSto = StringaNumeri(aElencoIncrRitMax,,True)
End Sub
Function IsCondizioneRispettata(nIdFiltro,nQIncr)
' verifica che l'incremento dell'ultimo ritmax sia uguale al massimo incr rit max conosciuto.
Dim nUpper
nUpper = UBound(aElencoIncrRitMax)
mIncrRitardoMaxSto = MassimoV(aElencoIncrRitMax,1,nUpper - 1)
If aElencoRit(UBound(aElencoRit)) > 0 And aIdEstrIncrRitMax(nUpper) = mFine And nUpper >= nQIncr Then
Select Case nIdFiltro
Case 0
IsCondizioneRispettata =(aElencoIncrRitMax(nUpper) = mIncrRitardoMaxSto)
Case 1
IsCondizioneRispettata =(aElencoIncrRitMax(nUpper) >= mIncrRitardoMaxSto)
Case 2
IsCondizioneRispettata =(aElencoIncrRitMax(nUpper) <= mIncrRitardoMaxSto)
End Select
Else
IsCondizioneRispettata = False
End If
End Function
'Scrivo la funzione Importo i Parametri ma non li dichiaro private sono solo nella funzione
Sub DisegnaGraficoIncrRitMax
Dim x,y,k
Dim nValoreMaxX,nValoreMaxY,nValoreMinX
Dim nStepX,nStepY
Dim nUpperVetIncrRit
nValoreMinX = MinimoV(aIdEstrIncrRitMax,1)
nValoreMaxX = aIdEstrIncrRitMax(UBound(aIdEstrIncrRitMax))
nValoreMaxY = MassimoV(aElencoRit,1)
nStepX =(nValoreMaxX -(mInizio - 1)) \10
nStepY = nValoreMaxY \10
Call PreparaGrafico("Formaziione " & StringaNumeri(aNumeri),nValoreMinX,nValoreMaxX,0,nValoreMaxY,nStepX,nStepY)
nUpperVetIncrRit = UBound(aElencoIncrRitMax)
' linea dell'incremento rit max
ReDim aV(nUpperVetIncrRit - 1,2)
For k = 1 To nUpperVetIncrRit
x = aIdEstrIncrRitMax(k)
y = aElencoIncrRitMax(k)
aV(k - 1,1) = x
aV(k - 1,2) = y
Next
Call DisegnaLineaGrafico(aV,vbRed,"IncrRitMax")
' linea dell' rit max
ReDim aV(nUpperVetIncrRit - 1,2)
For k = 1 To nUpperVetIncrRit
x = aIdEstrIncrRitMax(k)
y = aRitardiAllIncremento(k)
aV(k - 1,1) = x
aV(k - 1,2) = y
Next
Call DisegnaLineaGrafico(aV,vbBlue,"RitMax")
' scrive grafico nell'output
Call InserisciGrafico
End Sub
End Class
Sub Main
Dim Inizio,Fine,Sorte,idFiltro,qIncr
Inizio = 1
Fine = EstrazioniArchivioSE
Sorte = ScegliEsito
' decido il filtro in base al valore degli incrementi
idFiltro = GetIdFiltro
' decido di filtrare in base al numero degli incrementi
qIncr = GetQuantiIncrementi
If(Fine > Inizio) And Sorte > 0 And idFiltro > - 1 Then
Select Case ScegliTipoSviluppo
Case 1
Call AnalisiLunghetteFromFileTxt(Inizio,Fine,Sorte,idFiltro,qIncr)
Case 2
Call AnalisiLunghetteFromFileCol(Inizio,Fine,Sorte,idFiltro,qIncr)
Case 3
Call AnalisiLunghetteFromNumeriCasuali(Inizio,Fine,Sorte,idFiltro,qIncr)
Case 4
Call AnalisiLunghetteFromSceglinumeri(Inizio,Fine,Sorte,idFiltro,qIncr)
End Select
End If
End Sub
Function ScegliTipoSviluppo
ReDim aVoci(4)
aVoci(1) = "Da File .txt"
aVoci(2) = "Da File .Col"
aVoci(3) = "Da Selezione Casuale"
aVoci(4) = "Da Selezione Utente"
ScegliTipoSviluppo = ScegliOpzioneMenu(aVoci,1,"SelezionaSviluppo")
End Function
Function GetChrSepFromRiga(sRiga)
Dim k,schr
schr = ""
For k = 1 To Len(sRiga)
schr = Mid(sRiga,k,1)
If IsNumeric(schr) = False Then
Exit For
End If
Next
GetChrSepFromRiga = schr
End Function
'Function GetIdFiltro
'Dim aFiltro
'aFiltro = Array("IncrRitMaxSto=UltimoIncrRitMax","IncrRitMaxSto<=UltimoIncrRitMax","IncrRitMaxSto>=UltimoIncrRitMax")
'GetIdFiltro = ScegliOpzioneMenu(aFiltro,0,"Select Filtro Condizione")
'End Function
Function GetIdFiltro
Dim aFiltro(2)
aFiltro(0) = "aElencoIncrRitMax(nUpper) = mIncrRitardoMaxSto"
aFiltro(1) = "aElencoIncrRitMax(nUpper)>= mIncrRitardoMaxSto"
aFiltro(2) = "aElencoIncrRitMax(nUpper)<= mIncrRitardoMaxSto"
GetIdFiltro = ScegliOpzioneMenu(aFiltro,0,"Select Filtro Condizione")
End Function
Function ScriviFiltro(idFiltro)
Select Case idFiltro
Case 0
ScriviFiltro =("aElencoIncrRitMax(nUpper) = mIncrRitardoMaxSto")
Case 1
ScriviFiltro =("aElencoIncrRitMax(nUpper)>= mIncrRitardoMaxSto")
Case 2
ScriviFiltro =("aElencoIncrRitMax(nUpper)<= mIncrRitardoMaxSto")
End Select
End Function
Function GetQuantiIncrementi
GetQuantiIncrementi = CInt(InputBox("qIncr>=(NumeroIncrementiRitMaxFormazione)","Filtro Quantitaà Incrementi",5))
End Function
' Questa è la nuova routine che impedisce di scrivere i doppi
' ma non mpedisce di incrementare nTrov
'Sub AddLunghetta(collLunghette,clsL)
'On Error Resume Next
'collLunghette.Add clsL ,"k"&clsL.LunghettaString
'End Sub
Function AddLunghetta(collLunghette,clsL)
On Error Resume Next
collLunghette.Add clsL,"k" & clsL.LunghettaString
If Err = 0 Then
AddLunghetta = True
Else
AddLunghetta = False
End If
Err.Clear
End Function
Function GetValoreFraSeparatori(sFile,CharSep1,CharSep2)
Dim k
Dim i,f,sVal
i = InStr(1,sFile,CharSep1) + 1
f = InStr(i,sFile,CharSep2)
GetValoreFraSeparatori = Int(Mid(sFile,i,f - i))
End Function
Sub AnalisiLunghetteFromFileTxt(Inizio,Fine,Sorte,idFiltro,qIncr)
Dim sFile,aLunghette,nTotLunghette
Dim k,sChrSep
Dim clsL,collLunghette
Set collLunghette = GetNewCollection
sFile = ScegliFile(GetDirectoryAppData,".txt")
If FileEsistente(sFile) Then
Call LeggiRigheFileDiTesto(sFile,aLunghette)
nTotLunghette = UBound(aLunghette)
If nTotLunghette > 0 Then
sChrSep = GetChrSepFromRiga(aLunghette(1))
For k = 0 To nTotLunghette
Set clsL = New clsLunghetta
Call clsL.Init(aLunghette(k),sChrSep,Inizio,Fine,Sorte)
If clsL.IsCondizioneRispettata(idFiltro,qIncr) Then
Call clsL.EseguiStatistica
collLunghette.Add clsL
End If
If k Mod 50 = 0 Then
Call Messaggio("Righe esaminate : " & k)
Call AvanzamentoElab(1,nTotLunghette,k)
If ScriptInterrotto Then Exit For
End If
Next
Scrivi "Range analisi : " & GetInfoEstrazioneSE(Inizio) & " - " & GetInfoEstrazioneSE(Fine)
Scrivi "Filtro Esaminato : " & ScriviFiltro(idFiltro)
Scrivi "Lunghette esaminate : " & nTotLunghette + 1 & " Valide : " & collLunghette.count
Scrivi "Sorte : " & NomeSorte(Sorte)
Scrivi "Numero Minimo IncrRit : " & Format2(qIncr)
Scrivi
Scrivi FormatSpace("Lunghette ordinate per incremento ritardo max",75),True,True,RGB(25,89,76),vbWhite
Call Scrivi
If collLunghette.count > 0 Then
Call OrdinaItemCollection(collLunghette,"IncrRitMax",,,- 1)
For Each clsL In collLunghette
Call Scrivi("Numeri Formazione : " & clsL.LunghettaString)
Call Scrivi("Ritardo : " & clsL.Ritardo)
Call Scrivi("RitMax : " & clsL.RitardoMax)
Call Scrivi("Freq : " & clsL.Frequenza)
Call Scrivi("IncrRitMx : " & clsL.IncrRitMax)
Call Scrivi("IncrRitMaxSto : " & clsL.IncrRitMaxSto)
Call Scrivi("strIncrementi : " & clsL.strIncRitMaxSto)
Call Scrivi("Numero Incrementi : " & clsL.iNumIncrementi)
Call clsL.DisegnaGraficoIncrRitMax
Next
Else
Scrivi "Nessuna lunghetta rispetta le condizioni"
Scrivi "Lunghette esaminate " & nTotLunghette + 1
End If
End If
End If
End Sub
Sub AnalisiLunghetteFromNumeriCasuali(Inizio,Fine,Sorte,idFiltro,qIncr)
Dim sFile,aLunghette,nTotLunghette,nClasse
Dim nTrov,nProdotte
Dim clsL,collLunghette,uLunghette
ReDim aSelNum(0)
Set collLunghette = GetNewCollection
nTotLunghette = Int(InputBox("Quante lunghette devono essere prodotte ?",,10))
uLunghette = nTotLunghette
ScegliNumeri(aSelNum)
nClasse = Int(InputBox("Quanti numeri nella lunghetta","Sorte analizzata" & NomeSorte(Sorte),2))
If nTotLunghette > 0 And nClasse >= Sorte Then
nTrov = 0
nProdotte = 0
Do While nTotLunghette > 0
Set clsL = New clsLunghetta
ReDim aNum(nClasse)
Call GetColonnaCasuale(nClasse,aNum,aSelNum)
nProdotte = nProdotte + 1
Call clsL.Init(aNum,"",Inizio,Fine,Sorte)
If clsL.IsCondizioneRispettata(idFiltro,qIncr) Then
Call clsL.EseguiStatistica
If AddLunghetta(collLunghette,clsL) Then nTrov = nTrov + 1
End If
If nProdotte Mod 50 = 0 Then
Call Messaggio("combinazioni esaminate " & nProdotte & " valide " & nTrov)
Call AvanzamentoElab(1,uLunghette,nProdotte)
Call DoEventsEx
If ScriptInterrotto Then Exit Do
End If
nTotLunghette = nTotLunghette - 1
Loop
Scrivi "Range analisi : " & GetInfoEstrazioneSE(Inizio) & " - " & GetInfoEstrazioneSE(Fine)
Scrivi "Filtro Esaminato : " & ScriviFiltro(idFiltro)
Scrivi "Lunghette esaminate : " & nProdotte & " Valide : " & collLunghette.count
Scrivi "Sorte : " & NomeSorte(Sorte)
Scrivi "Numero Minimo IncrRit : " & Format2(qIncr)
Scrivi
Scrivi FormatSpace("Lunghette ordinate per incremento ritardo max",75),True,True,RGB(25,89,76),vbWhite
Call Scrivi
If collLunghette.count > 0 Then
Call OrdinaItemCollection(collLunghette,"IncrRitMax",,,- 1)
For Each clsL In collLunghette
Call Scrivi("Numeri Formazione : " & clsL.LunghettaString)
Call Scrivi("Ritardo : " & clsL.Ritardo)
Call Scrivi("RitMax : " & clsL.RitardoMax)
Call Scrivi("Freq : " & clsL.Frequenza)
Call Scrivi("IncrRitMx : " & clsL.IncrRitMax)
Call Scrivi("IncrRitMaxSto : " & clsL.IncrRitMaxSto)
Call Scrivi("strIncrementi : " & clsL.strIncRitMaxSto)
Call Scrivi("Numero Incrementi : " & clsL.iNumIncrementi)
Call clsL.DisegnaGraficoIncrRitMax
Next
Else
Scrivi "Nessuna lunghetta rispetta le condizioni"
Scrivi "Lunghette esaminate " & nProdotte
End If
End If
End Sub
Sub AnalisiLunghetteFromSceglinumeri(Inizio,Fine,Sorte,idFiltro,qInc)
Dim nTotLunghette
Dim k,sChrSep,nClasse
ReDim aLunghette(0)
Dim clsL,collLunghette,FiltroEsaminato
Set collLunghette = GetNewCollection
FiltroEsaminato = ScriviFiltro(idFiltro)
sChrSep = " "
ScegliNumeri(aLunghette)
nClasse = CInt(InputBox(" classe sviluppo ",,2))
nTotLunghette = InitSviluppoIntegrale(aLunghette,nClasse)
k = 0
Do While GetCombSviluppo(aLunghette)
k = k + 1
Set clsL = New clsLunghetta
Call clsL.Init(aLunghette,sChrSep,Inizio,Fine,Sorte)
If clsL.IsCondizioneRispettata(idFiltro,qIncr) Then
Call clsL.EseguiStatistica
collLunghette.Add clsL
End If
If k Mod 50 = 0 Then
Call Messaggio("Righe esaminate " & k & " valide " & collLunghette. count)
DoEventsEx
Call AvanzamentoElab(1,nTotLunghette,k)
If ScriptInterrotto Then Exit Do
End If
Loop
Scrivi "Range analisi : " & GetInfoEstrazioneSE(Inizio) & " - " & GetInfoEstrazioneSE(Fine)
Scrivi "Filtro Esaminato : " & FiltroEsaminato
Scrivi "Lunghette esaminate : " & nTotLunghette & " Valide : " & collLunghette.count
Scrivi "Sorte : " & NomeSorte(Sorte)
Scrivi "Numero Minimo IncrRit : " & Format2(qIncr)
Scrivi
Scrivi FormatSpace("Lunghette ordinate per incremento ritardo max",75),True,True,RGB(25,89,76),vbWhite
Call Scrivi
If collLunghette.count > 0 Then
Call OrdinaItemCollection(collLunghette,"IncrRitMax",,,- 1)
For Each clsL In collLunghette
Call Scrivi("Numeri Formazione : " & clsL.LunghettaString)
Call Scrivi("Ritardo : " & clsL.Ritardo)
Call Scrivi("RitMax : " & clsL.RitardoMax)
Call Scrivi("Freq : " & clsL.Frequenza)
Call Scrivi("IncrRitMx : " & clsL.IncrRitMax)
Call Scrivi("IncrRitMaxSto : " & clsL.IncrRitMaxSto)
Call Scrivi("strIncrementi : " & clsL.strIncRitMaxSto)
Call Scrivi("Numero Incrementi : " & clsL.iNumIncrementi)
Call clsL.DisegnaGraficoIncrRitMax
Next
Else
Scrivi "Nessuna lunghetta rispetta le condizioni"
Scrivi "Lunghette esaminate " & nTotLunghette
End If
End Sub
Sub AnalisiLunghetteFromFileCol(Inizio,Fine,Sorte,idFiltro,qIncr)
Dim sFile,nTotLunghette
Dim k,sChrSep
Dim clsL,collLunghette
sChrSep = " "
Set collLunghette = GetNewCollection
sFile = ScegliFile(GetDirectoryAppData & "SviluppiColonne",".col")
If FileEsistente(sFile) Then
ReDim alunghette(0)
Call LeggiColonnaSistema(alunghette,1,sFile,,nTotLunghette)
If nTotLunghette > 0 Then
For k = 1 To nTotLunghette
ReDim alunghette(0)
Call LeggiColonnaSistema(alunghette,k,sFile)
Set clsL = New clsLunghetta
Call clsL.Init(alunghette,sChrSep,Inizio,Fine,Sorte)
If clsL.IsCondizioneRispettata(idFiltro,qIncr) Then
Call clsL.EseguiStatistica
collLunghette.Add clsL
End If
If k Mod 50 = 0 Then
Call Messaggio("Colonne esaminate : " & k & " Valide : " & collLunghette.count)
Call AvanzamentoElab(1,nTotLunghette,k)
If ScriptInterrotto Then Exit For
End If
Next
Scrivi "Range analisi : " & GetInfoEstrazioneSE(Inizio) & " - " & GetInfoEstrazioneSE(Fine)
Scrivi "Filtro Esaminato : " & ScriviFiltro(idFiltro)
Scrivi "Lunghette esaminate : " & nTotLunghette + 1 & " Valide : " & collLunghette.count
Scrivi "Sorte : " & NomeSorte(Sorte)
Scrivi "Numero Minimo IncrRit : " & Format2(qIncr)
Scrivi
Scrivi FormatSpace("Lunghette ordinate per incremento ritardo max",75),True,True,RGB(25,89,76),vbWhite
Call Scrivi
If collLunghette.count > 0 Then
Call OrdinaItemCollection(collLunghette,"IncrRitMax",,,- 1)
For Each clsL In collLunghette
Call Scrivi("Numeri Formazione : " & clsL.LunghettaString)
Call Scrivi("Ritardo : " & clsL.Ritardo)
Call Scrivi("RitMax : " & clsL.RitardoMax)
Call Scrivi("Freq : " & clsL.Frequenza)
Call Scrivi("IncrRitMx : " & clsL.IncrRitMax)
Call Scrivi("IncrRitMaxSto : " & clsL.IncrRitMaxSto)
Call Scrivi("strIncrementi : " & clsL.strIncRitMaxSto)
Call Scrivi("Numero Incrementi : " & clsL.iNumIncrementi)
Call clsL.DisegnaGraficoIncrRitMax
Next
Else
Scrivi "Nessuna lunghetta rispetta le condizioni"
Scrivi "Lunghette esaminate " & nTotLunghette + 1
End If
End If
End If
End Sub

Eh si caro i legend sembra proprio che magia abbia anticipato la befana... di un bel pò a quanto pare ;) Grazie 1000 magia! :) Purtroppo eseguendolo mi dava errore e ho cercato di mettere da solo i cerotti... Mi segnalava l'errore che ti allego... Non sono sicuro però di aver messo le toppe al posto giusto.. e quindi se puoi verificarlo un attimo ti riringrazio :D

Errore che dava:
errore-script-scopadelico-x-superenalotto.jpg


Versione con tentativo di rattoppo che non da errore ma che non sono sicuro per quanto riguarda l'esattezza dei relativi report perchè ho sostituito la variabile qinc un pò a caso... :D

Codice:
Option Explicit
' Script Da Verificare
' Eliminate i filtri di nClasse x sistemi casuali .Il P.C con un elevato numero di combinazioni
' potrebbe impallarsi, anzi lo farà sicuramente
' Inserita funzione per trasformare i numeri virtuali( forse e solo Parziale e non generale)
' Un Grande grazie a Tom Richiedente lo script
' Un Grande grazie a silop che ha ampliato la ricerca con le sue conoscenze
' Un Grandissimo grazie a Luigi per i suoi INSEGNAMENTI
' Un grande saluto da I Legend [ aiutante:)]
Class clsLunghetta
Private aNumeri ' contiene i numeri della lunghetta
Private mInizio,mFine,mSorte ' parametri per il range analisi
Private mClasse ' contine la classe della lunghetta
Private aElencoRit ' conterra l'elenco dei ritardi per la lunghetta
Private aIdEstrElencoRit ' conterra l'elenco dei ritardi per la lunghetta
Private aElencoIncrRitMax ' contiene l'elnco degli incrementi del ritardo max
Private aIdEstrIncrRitMax ' conterra l'elenco degli id estrazione in
' cui si è registrato l'incremento del ritmax conosciuto
Private aRitardiAllIncremento ' contiene il valore del ritardo all'idestrazione in cui
' si è verificato l'incremento
Private mRitardo,mRitardoMax,mIncrRitMax,mFrequenza ' valori statistici
Private mIncrRitardoMaxSto,mStrIncRitSto
'Private mDist,mbPrimaEstrFissa
Public Property Get iNumIncrementi
iNumIncrementi = UBound(aElencoIncrRitMax)
End Property
Public Property Get IncrRitMaxSto
IncrRitMaxSto = mIncrRitardoMaxSto
End Property
Public Property Get strIncRitMaxSto
strIncRitMaxSto = mStrIncRitSto
End Property
Public Property Get Ritardo
Ritardo = mRitardo
End Property
Public Property Get RitardoMax
RitardoMax = mRitardoMax
End Property
Public Property Get IncrRitMax
IncrRitMax = mIncrRitMax
End Property
Public Property Get Frequenza
Frequenza = mFrequenza
End Property
Public Property Get LunghettaString
LunghettaString = StringaNumeri(aNumeri)
End Property
' inizializza le proprietà dell'oggetto
Sub Init(sLunghetta,sChrSep,RangeInizio,RangeFine,SorteInGioco)
' acquisisco i parametri per l'analisi
mInizio = RangeInizio
mFine = RangeFine
mSorte = SorteInGioco
' alimento il vettore con i numeri della lunghetta
Call AlimentaVettoreLunghetta(sLunghetta,sChrSep)
' calcolo l'elenco dei ritardi
Call ElencoRitardiSE(aNumeri,mSorte,mInizio,mFine,aElencoRit,aIdEstrElencoRit)
' alimento il vettore che contien l'elenco degli incrementi rit max
Call AlimentaVettoreIncrRitMax
End Sub
' esegue il calcolo dei valori statistici della lunghetta
Sub EseguiStatistica
Call StatisticaFormazioneSE(aNumeri,mSorte,mRitardo,mRitardoMax,mIncrRitMax,mFrequenza,mInizio,mFine)
End Sub
Private Sub AlimentaVettoreLunghetta(sLunghetta,sChrSep)
Dim k
If IsArray(sLunghetta) Then
' se la lunghetta è gia un array lo copio nel vettore locale dei numeri
ReDim aNumeri(UBound(sLunghetta))
For k = 1 To UBound(sLunghetta)
aNumeri(k) = sLunghetta(k)
Next
Else
' antepongo un carattere separatore per fare in modo che
' aNumeri si valorizzi dall'indice 1 (senno si sarebeb valorizzato dall'indice 0)
Call SplitByChar((sChrSep & sLunghetta),sChrSep,aNumeri)
End If
' valorizzo la classe della lunghetta
mClasse = UBound(aNumeri)
End Sub
Private Sub AlimentaVettoreIncrRitMax
Dim nRitMax,nIncr,nId,k
nId = 0
' inizializzo il vettore a 0 elementi
ReDim aElencoIncrRitMax(0)
ReDim aIdEstrIncrRitMax(0)
ReDim aRitardiAllIncremento(0)
' ciclo sul vettore dei ritardi
For k = 1 To UBound(aElencoRit)
' se il ritardo corrente supera il ritmax attuale..
If aElencoRit(k) > nRitMax Then
If nRitMax > 0 Then
' se il ritmax attuale è >0 (ivvero ne esiste uno)
' calcolo di quanto si è incrementato
nIncr = aElencoRit(k) - nRitMax
' incremento il contatore dei valori trovati
nId = nId + 1
' ridimensiono il vettore mantenendo i valori precedenti ma
' aggiungendone uno
ReDim Preserve aElencoIncrRitMax(nId)
' memorizzo il valore
aElencoIncrRitMax(nId) = nIncr
' ridimensiono il vettore mantnendo i valori precedenti ma
' aggiungendone uno
ReDim Preserve aIdEstrIncrRitMax(nId)
' memorizzo l'id dell'estrazione dove si è avuto l'incremento
aIdEstrIncrRitMax(nId) = aIdEstrElencoRit(k)
' ridimensiono il vettore mantnendo i valori precedenti ma
' aggiungendone uno
ReDim Preserve aRitardiAllIncremento(nId)
' memorizzo il valore del ritardo all'id dell'estrazione dove si è avuto l'incremento
aRitardiAllIncremento(nId) = aElencoRit(k)
End If
nRitMax = aElencoRit(k)
End If
Next
mStrIncRitSto = StringaNumeri(aElencoIncrRitMax,,True)
End Sub
Function IsCondizioneRispettata(nIdFiltro,nQIncr)
' verifica che l'incremento dell'ultimo ritmax sia uguale al massimo incr rit max conosciuto.
Dim nUpper
nUpper = UBound(aElencoIncrRitMax)
mIncrRitardoMaxSto = MassimoV(aElencoIncrRitMax,1,nUpper - 1)
If aElencoRit(UBound(aElencoRit)) > 0 And aIdEstrIncrRitMax(nUpper) = mFine And nUpper >= nQIncr Then
Select Case nIdFiltro
Case 0
IsCondizioneRispettata =(aElencoIncrRitMax(nUpper) = mIncrRitardoMaxSto)
Case 1
IsCondizioneRispettata =(aElencoIncrRitMax(nUpper) >= mIncrRitardoMaxSto)
Case 2
IsCondizioneRispettata =(aElencoIncrRitMax(nUpper) <= mIncrRitardoMaxSto)
End Select
Else
IsCondizioneRispettata = False
End If
End Function
'Scrivo la funzione Importo i Parametri ma non li dichiaro private sono solo nella funzione
Sub DisegnaGraficoIncrRitMax
Dim x,y,k
Dim nValoreMaxX,nValoreMaxY,nValoreMinX
Dim nStepX,nStepY
Dim nUpperVetIncrRit
nValoreMinX = MinimoV(aIdEstrIncrRitMax,1)
nValoreMaxX = aIdEstrIncrRitMax(UBound(aIdEstrIncrRitMax))
nValoreMaxY = MassimoV(aElencoRit,1)
nStepX =(nValoreMaxX -(mInizio - 1)) \10
nStepY = nValoreMaxY \10
Call PreparaGrafico("Formaziione " & StringaNumeri(aNumeri),nValoreMinX,nValoreMaxX,0,nValoreMaxY,nStepX,nStepY)
nUpperVetIncrRit = UBound(aElencoIncrRitMax)
' linea dell'incremento rit max
ReDim aV(nUpperVetIncrRit - 1,2)
For k = 1 To nUpperVetIncrRit
x = aIdEstrIncrRitMax(k)
y = aElencoIncrRitMax(k)
aV(k - 1,1) = x
aV(k - 1,2) = y
Next
Call DisegnaLineaGrafico(aV,vbRed,"IncrRitMax")
' linea dell' rit max
ReDim aV(nUpperVetIncrRit - 1,2)
For k = 1 To nUpperVetIncrRit
x = aIdEstrIncrRitMax(k)
y = aRitardiAllIncremento(k)
aV(k - 1,1) = x
aV(k - 1,2) = y
Next
Call DisegnaLineaGrafico(aV,vbBlue,"RitMax")
' scrive grafico nell'output
Call InserisciGrafico
End Sub
End Class
Sub Main
Dim Inizio,Fine,Sorte,idFiltro,qIncr
Inizio = 1
Fine = EstrazioniArchivioSE
Sorte = ScegliEsito
' decido il filtro in base al valore degli incrementi
idFiltro = GetIdFiltro
' decido di filtrare in base al numero degli incrementi
qIncr = GetQuantiIncrementi
If(Fine > Inizio) And Sorte > 0 And idFiltro > - 1 Then
Select Case ScegliTipoSviluppo
Case 1
Call AnalisiLunghetteFromFileTxt(Inizio,Fine,Sorte,idFiltro,qIncr)
Case 2
Call AnalisiLunghetteFromFileCol(Inizio,Fine,Sorte,idFiltro,qIncr)
Case 3
Call AnalisiLunghetteFromNumeriCasuali(Inizio,Fine,Sorte,idFiltro,qIncr)
Case 4
Call AnalisiLunghetteFromSceglinumeri(Inizio,Fine,Sorte,idFiltro,qIncr)
End Select
End If
End Sub
Function ScegliTipoSviluppo
ReDim aVoci(4)
aVoci(1) = "Da File .txt"
aVoci(2) = "Da File .Col"
aVoci(3) = "Da Selezione Casuale"
aVoci(4) = "Da Selezione Utente"
ScegliTipoSviluppo = ScegliOpzioneMenu(aVoci,1,"SelezionaSviluppo")
End Function
Function GetChrSepFromRiga(sRiga)
Dim k,schr
schr = ""
For k = 1 To Len(sRiga)
schr = Mid(sRiga,k,1)
If IsNumeric(schr) = False Then
Exit For
End If
Next
GetChrSepFromRiga = schr
End Function
'Function GetIdFiltro
'Dim aFiltro
'aFiltro = Array("IncrRitMaxSto=UltimoIncrRitMax","IncrRitMaxSto<=UltimoIncrRitMax","IncrRitMaxSto>=UltimoIncrRitMax")
'GetIdFiltro = ScegliOpzioneMenu(aFiltro,0,"Select Filtro Condizione")
'End Function
Function GetIdFiltro
Dim aFiltro(2)
aFiltro(0) = "aElencoIncrRitMax(nUpper) = mIncrRitardoMaxSto"
aFiltro(1) = "aElencoIncrRitMax(nUpper)>= mIncrRitardoMaxSto"
aFiltro(2) = "aElencoIncrRitMax(nUpper)<= mIncrRitardoMaxSto"
GetIdFiltro = ScegliOpzioneMenu(aFiltro,0,"Select Filtro Condizione")
End Function
Function ScriviFiltro(idFiltro)
Select Case idFiltro
Case 0
ScriviFiltro =("aElencoIncrRitMax(nUpper) = mIncrRitardoMaxSto")
Case 1
ScriviFiltro =("aElencoIncrRitMax(nUpper)>= mIncrRitardoMaxSto")
Case 2
ScriviFiltro =("aElencoIncrRitMax(nUpper)<= mIncrRitardoMaxSto")
End Select
End Function
Function GetQuantiIncrementi
GetQuantiIncrementi = CInt(InputBox("qIncr>=(NumeroIncrementiRitMaxFormazione)","Filtro Quantitaà Incrementi",5))
End Function
' Questa è la nuova routine che impedisce di scrivere i doppi
' ma non mpedisce di incrementare nTrov
'Sub AddLunghetta(collLunghette,clsL)
'On Error Resume Next
'collLunghette.Add clsL ,"k"&clsL.LunghettaString
'End Sub
Function AddLunghetta(collLunghette,clsL)
On Error Resume Next
collLunghette.Add clsL,"k" & clsL.LunghettaString
If Err = 0 Then
AddLunghetta = True
Else
AddLunghetta = False
End If
Err.Clear
End Function
Function GetValoreFraSeparatori(sFile,CharSep1,CharSep2)
Dim k
Dim i,f,sVal
i = InStr(1,sFile,CharSep1) + 1
f = InStr(i,sFile,CharSep2)
GetValoreFraSeparatori = Int(Mid(sFile,i,f - i))
End Function
Sub AnalisiLunghetteFromFileTxt(Inizio,Fine,Sorte,idFiltro,qIncr)
Dim sFile,aLunghette,nTotLunghette
Dim k,sChrSep
Dim clsL,collLunghette
Set collLunghette = GetNewCollection
sFile = ScegliFile(GetDirectoryAppData,".txt")
If FileEsistente(sFile) Then
Call LeggiRigheFileDiTesto(sFile,aLunghette)
nTotLunghette = UBound(aLunghette)
If nTotLunghette > 0 Then
sChrSep = GetChrSepFromRiga(aLunghette(1))
For k = 0 To nTotLunghette
Set clsL = New clsLunghetta
Call clsL.Init(aLunghette(k),sChrSep,Inizio,Fine,Sorte)
If clsL.IsCondizioneRispettata(idFiltro,qIncr) Then
Call clsL.EseguiStatistica
collLunghette.Add clsL
End If
If k Mod 50 = 0 Then
Call Messaggio("Righe esaminate : " & k)
Call AvanzamentoElab(1,nTotLunghette,k)
If ScriptInterrotto Then Exit For
End If
Next
Scrivi "Range analisi         : " & GetInfoEstrazioneSE(Inizio) & " - " & GetInfoEstrazioneSE(Fine)
Scrivi "Filtro Esaminato      : " & ScriviFiltro(idFiltro)
Scrivi "Lunghette esaminate   : " & nTotLunghette + 1 & " Valide : " & collLunghette.count
Scrivi "Sorte                 : " & NomeSorte(Sorte)
Scrivi "Numero Minimo IncrRit : " & Format2(qIncr)
Scrivi
Scrivi FormatSpace("Lunghette ordinate per incremento ritardo max",75),True,True,RGB(25,89,76),vbWhite
Call Scrivi
If collLunghette.count > 0 Then
Call OrdinaItemCollection(collLunghette,"IncrRitMax",,,- 1)
For Each clsL In collLunghette
Call Scrivi("Numeri Formazione     : " & clsL.LunghettaString)
Call Scrivi("Ritardo               : " & clsL.Ritardo)
Call Scrivi("RitMax                : " & clsL.RitardoMax)
Call Scrivi("Freq                  : " & clsL.Frequenza)
Call Scrivi("IncrRitMx             : " & clsL.IncrRitMax)
Call Scrivi("IncrRitMaxSto         : " & clsL.IncrRitMaxSto)
Call Scrivi("strIncrementi         : " & clsL.strIncRitMaxSto)
Call Scrivi("Numero Incrementi     : " & clsL.iNumIncrementi)
Call clsL.DisegnaGraficoIncrRitMax
Next
Else
Scrivi "Nessuna lunghetta rispetta le condizioni"
Scrivi "Lunghette esaminate " & nTotLunghette + 1
End If
End If
End If
End Sub
Sub AnalisiLunghetteFromNumeriCasuali(Inizio,Fine,Sorte,idFiltro,qIncr)
Dim sFile,aLunghette,nTotLunghette,nClasse
Dim nTrov,nProdotte
Dim clsL,collLunghette,uLunghette
ReDim aSelNum(0)
Set collLunghette = GetNewCollection
nTotLunghette = Int(InputBox("Quante lunghette devono essere prodotte ?",,10))
uLunghette = nTotLunghette
ScegliNumeri(aSelNum)
nClasse = Int(InputBox("Quanti numeri nella lunghetta","Sorte analizzata" & NomeSorte(Sorte),2))
If nTotLunghette > 0 And nClasse >= Sorte Then
nTrov = 0
nProdotte = 0
Do While nTotLunghette > 0
Set clsL = New clsLunghetta
ReDim aNum(nClasse)
Call GetColonnaCasuale(nClasse,aNum,aSelNum)
nProdotte = nProdotte + 1
Call clsL.Init(aNum,"",Inizio,Fine,Sorte)
If clsL.IsCondizioneRispettata(idFiltro,qIncr) Then
Call clsL.EseguiStatistica
If AddLunghetta(collLunghette,clsL) Then nTrov = nTrov + 1
End If
If nProdotte Mod 50 = 0 Then
Call Messaggio("combinazioni esaminate " & nProdotte & " valide " & nTrov)
Call AvanzamentoElab(1,uLunghette,nProdotte)
Call DoEventsEx
If ScriptInterrotto Then Exit Do
End If
nTotLunghette = nTotLunghette - 1
Loop
Scrivi "Range analisi         : " & GetInfoEstrazioneSE(Inizio) & " - " & GetInfoEstrazioneSE(Fine)
Scrivi "Filtro Esaminato      : " & ScriviFiltro(idFiltro)
Scrivi "Lunghette esaminate   : " & nProdotte & " Valide : " & collLunghette.count
Scrivi "Sorte                 : " & NomeSorte(Sorte)
Scrivi "Numero Minimo IncrRit : " & Format2(qIncr)
Scrivi
Scrivi FormatSpace("Lunghette ordinate per incremento ritardo max",75),True,True,RGB(25,89,76),vbWhite
Call Scrivi
If collLunghette.count > 0 Then
Call OrdinaItemCollection(collLunghette,"IncrRitMax",,,- 1)
For Each clsL In collLunghette
Call Scrivi("Numeri Formazione     : " & clsL.LunghettaString)
Call Scrivi("Ritardo               : " & clsL.Ritardo)
Call Scrivi("RitMax                : " & clsL.RitardoMax)
Call Scrivi("Freq                  : " & clsL.Frequenza)
Call Scrivi("IncrRitMx             : " & clsL.IncrRitMax)
Call Scrivi("IncrRitMaxSto         : " & clsL.IncrRitMaxSto)
Call Scrivi("strIncrementi         : " & clsL.strIncRitMaxSto)
Call Scrivi("Numero Incrementi     : " & clsL.iNumIncrementi)
Call clsL.DisegnaGraficoIncrRitMax
Next
Else
Scrivi "Nessuna lunghetta rispetta le condizioni"
Scrivi "Lunghette esaminate " & nProdotte
End If
End If
End Sub
Sub AnalisiLunghetteFromSceglinumeri(Inizio,Fine,Sorte,idFiltro,qInc)
Dim nTotLunghette
Dim k,sChrSep,nClasse
ReDim aLunghette(0)
Dim clsL,collLunghette,FiltroEsaminato
Set collLunghette = GetNewCollection
FiltroEsaminato = ScriviFiltro(idFiltro)
sChrSep = " "
ScegliNumeri(aLunghette)
nClasse = CInt(InputBox(" classe sviluppo ",,2))
nTotLunghette = InitSviluppoIntegrale(aLunghette,nClasse)
k = 0
Do While GetCombSviluppo(aLunghette)
k = k + 1
Set clsL = New clsLunghetta
Call clsL.Init(aLunghette,sChrSep,Inizio,Fine,Sorte)
If clsL.IsCondizioneRispettata(idFiltro,qInc) Then
Call clsL.EseguiStatistica
collLunghette.Add clsL
End If
If k Mod 50 = 0 Then
Call Messaggio("Righe esaminate " & k & "  valide " & collLunghette. count)
DoEventsEx
Call AvanzamentoElab(1,nTotLunghette,k)
If ScriptInterrotto Then Exit Do
End If
Loop
Scrivi "Range analisi         : " & GetInfoEstrazioneSE(Inizio) & " - " & GetInfoEstrazioneSE(Fine)
Scrivi "Filtro Esaminato      : " & FiltroEsaminato
Scrivi "Lunghette esaminate   : " & nTotLunghette & " Valide : " & collLunghette.count
Scrivi "Sorte                 : " & NomeSorte(Sorte)
Scrivi "Numero Minimo IncrRit : " & Format2(qInc)
Scrivi
Scrivi FormatSpace("Lunghette ordinate per incremento ritardo max",75),True,True,RGB(25,89,76),vbWhite
Call Scrivi
If collLunghette.count > 0 Then
Call OrdinaItemCollection(collLunghette,"IncrRitMax",,,- 1)
For Each clsL In collLunghette
Call Scrivi("Numeri Formazione     : " & clsL.LunghettaString)
Call Scrivi("Ritardo               : " & clsL.Ritardo)
Call Scrivi("RitMax                : " & clsL.RitardoMax)
Call Scrivi("Freq                  : " & clsL.Frequenza)
Call Scrivi("IncrRitMx             : " & clsL.IncrRitMax)
Call Scrivi("IncrRitMaxSto         : " & clsL.IncrRitMaxSto)
Call Scrivi("strIncrementi         : " & clsL.strIncRitMaxSto)
Call Scrivi("Numero Incrementi     : " & clsL.iNumIncrementi)
Call clsL.DisegnaGraficoIncrRitMax
Next
Else
Scrivi "Nessuna lunghetta rispetta le condizioni"
Scrivi "Lunghette esaminate " & nTotLunghette
End If
End Sub
Sub AnalisiLunghetteFromFileCol(Inizio,Fine,Sorte,idFiltro,qIncr)
Dim sFile,nTotLunghette
Dim k,sChrSep
Dim clsL,collLunghette
sChrSep = " "
Set collLunghette = GetNewCollection
sFile = ScegliFile(GetDirectoryAppData & "SviluppiColonne",".col")
If FileEsistente(sFile) Then
ReDim alunghette(0)
Call LeggiColonnaSistema(alunghette,1,sFile,,nTotLunghette)
If nTotLunghette > 0 Then
For k = 1 To nTotLunghette
ReDim alunghette(0)
Call LeggiColonnaSistema(alunghette,k,sFile)
Set clsL = New clsLunghetta
Call clsL.Init(alunghette,sChrSep,Inizio,Fine,Sorte)
If clsL.IsCondizioneRispettata(idFiltro,qIncr) Then
Call clsL.EseguiStatistica
collLunghette.Add clsL
End If
If k Mod 50 = 0 Then
Call Messaggio("Colonne esaminate : " & k & "  Valide : " & collLunghette.count)
Call AvanzamentoElab(1,nTotLunghette,k)
If ScriptInterrotto Then Exit For
End If
Next
Scrivi "Range analisi         : " & GetInfoEstrazioneSE(Inizio) & " - " & GetInfoEstrazioneSE(Fine)
Scrivi "Filtro Esaminato      : " & ScriviFiltro(idFiltro)
Scrivi "Lunghette esaminate   : " & nTotLunghette + 1 & " Valide : " & collLunghette.count
Scrivi "Sorte                 : " & NomeSorte(Sorte)
Scrivi "Numero Minimo IncrRit : " & Format2(qIncr)
Scrivi
Scrivi FormatSpace("Lunghette ordinate per incremento ritardo max",75),True,True,RGB(25,89,76),vbWhite
Call Scrivi
If collLunghette.count > 0 Then
Call OrdinaItemCollection(collLunghette,"IncrRitMax",,,- 1)
For Each clsL In collLunghette
Call Scrivi("Numeri Formazione     : " & clsL.LunghettaString)
Call Scrivi("Ritardo               : " & clsL.Ritardo)
Call Scrivi("RitMax                : " & clsL.RitardoMax)
Call Scrivi("Freq                  : " & clsL.Frequenza)
Call Scrivi("IncrRitMx             : " & clsL.IncrRitMax)
Call Scrivi("IncrRitMaxSto         : " & clsL.IncrRitMaxSto)
Call Scrivi("strIncrementi         : " & clsL.strIncRitMaxSto)
Call Scrivi("Numero Incrementi     : " & clsL.iNumIncrementi)
Call clsL.DisegnaGraficoIncrRitMax
Next
Else
Scrivi "Nessuna lunghetta rispetta le condizioni"
Scrivi "Lunghette esaminate " & nTotLunghette + 1
End If
End If
End If
End Sub

Grazie ancora magia! :D
 

Allegati

  • errore-script-scopadelico-x-superenalotto.jpg
    errore-script-scopadelico-x-superenalotto.jpg
    36,2 KB · Visite: 0
Ultima modifica:
[TABLE="border: 0, cellpadding: 0, cellspacing: 0, width: 832"]
[TR]
[TD]
LOGOSILOP.gif
[/TD]
[/TR]
[TR]
[TD] [/TD]
[/TR]
[TR]
[TD]Ciao Lotto_tom ,[/TD]
[/TR]
[TR]
[TD]======================== [/TD]
[/TR]
[TR]
[TD]ho aggiornato SPMT vers. 1.5.69 e relativo plug in SVP vers. 1.0.53[/TD]
[/TR]
[TR]
[TD]======================== [/TD]
[/TR]
[TR]
[TD]ho lanciato lo script del bravo Magia ( amaretto) per l'archivio del superenalotto[/TD]
[/TR]
[TR]
[TD]quello pubblicato alle ore 18:41[/TD]
[/TR]
[TR]
[TD]e funziona perfettamente…. ecco alcune elaborazioni [/TD]
[/TR]
[TR]
[TD]sulle 4005 coppie per la sorte dell'ambo[/TD]
[/TR]
[TR]
[TD]======================== [/TD]
[/TR]
[TR]
[TD]Range analisi : [00001] [87] 03.12.1997 - [02432] [146] 05.12.2015[/TD]
[/TR]
[TR]
[TD]Filtro Esaminato : aElencoIncrRitMax(nUpper)>= mIncrRitardoMaxSto[/TD]
[/TR]
[TR]
[TD]Lunghette esaminate : 4005 Valide : 227[/TD]
[/TR]
[TR]
[TD]Sorte : Ambo[/TD]
[/TR]
[TR]
[TD]Numero Minimo IncrRit : 00[/TD]
[/TR]
[TR]
[TD] [/TD]
[/TR]
[TR]
[TD]Lunghette ordinate per incremento ritardo max [/TD]
[/TR]
[TR]
[TD] [/TD]
[/TR]
[TR]
[TD]Numeri Formazione : .27.90[/TD]
[/TR]
[TR]
[TD]Ritardo : 897[/TD]
[/TR]
[TR]
[TD]RitMax : 897[/TD]
[/TR]
[TR]
[TD]Freq : 13[/TD]
[/TR]
[TR]
[TD]IncrRitMx : 562[/TD]
[/TR]
[TR]
[TD]IncrRitMaxSto : 219[/TD]
[/TR]
[TR]
[TD]strIncrementi : 219.57.54.1034[/TD]
[/TR]
[TR]
[TD]Numero Incrementi : 4[/TD]
[/TR]
[TR]
[TD]Numeri Formazione : .43.90[/TD]
[/TR]
[TR]
[TD]Ritardo : 553[/TD]
[/TR]
[TR]
[TD]RitMax : 553[/TD]
[/TR]
[TR]
[TD]Freq : 16[/TD]
[/TR]
[TR]
[TD]IncrRitMx : 275[/TD]
[/TR]
[TR]
[TD]IncrRitMaxSto : 161[/TD]
[/TR]
[TR]
[TD]strIncrementi : 161.39.85.190[/TD]
[/TR]
[TR]
[TD]Numero Incrementi : 4[/TD]
[/TR]
[TR]
[TD]Numeri Formazione : .11.55[/TD]
[/TR]
[TR]
[TD]Ritardo : 575[/TD]
[/TR]
[TR]
[TD]RitMax : 575[/TD]
[/TR]
[TR]
[TD]Freq : 15[/TD]
[/TR]
[TR]
[TD]IncrRitMx : 262[/TD]
[/TR]
[TR]
[TD]IncrRitMaxSto : 0[/TD]
[/TR]
[TR]
[TD]strIncrementi : 184[/TD]
[/TR]
[TR]
[TD]Numero Incrementi : 1[/TD]
[/TR]
[TR]
[TD]Numeri Formazione : .56.71[/TD]
[/TR]
[TR]
[TD]Ritardo : 553[/TD]
[/TR]
[TR]
[TD]RitMax : 553[/TD]
[/TR]
[TR]
[TD]Freq : 25[/TD]
[/TR]
[TR]
[TD]IncrRitMx : 226[/TD]
[/TR]
[TR]
[TD]IncrRitMaxSto : 173[/TD]
[/TR]
[TR]
[TD]strIncrementi : 173.137.28.225[/TD]
[/TR]
[TR]
[TD]Numero Incrementi : 4[/TD]
[/TR]
[TR]
[TD]Numeri Formazione : .43.68[/TD]
[/TR]
[TR]
[TD]Ritardo : 912[/TD]
[/TR]
[TR]
[TD]RitMax : 912[/TD]
[/TR]
[TR]
[TD]Freq : 6[/TD]
[/TR]
[TR]
[TD]IncrRitMx : 220[/TD]
[/TR]
[TR]
[TD]IncrRitMaxSto : 0[/TD]
[/TR]
[TR]
[TD]strIncrementi : 373[/TD]
[/TR]
[TR]
[TD]Numero Incrementi : 1[/TD]
[/TR]
[TR]
[TD]Numeri Formazione : .03.69[/TD]
[/TR]
[TR]
[TD]Ritardo : 631[/TD]
[/TR]
[TR]
[TD]RitMax : 631[/TD]
[/TR]
[TR]
[TD]Freq : 17[/TD]
[/TR]
[TR]
[TD]IncrRitMx : 180[/TD]
[/TR]
[TR]
[TD]IncrRitMaxSto : 21[/TD]
[/TR]
[TR]
[TD]strIncrementi : 21.159[/TD]
[/TR]
[TR]
[TD]Numero Incrementi : 2[/TD]
[/TR]
[TR]
[TD]Numeri Formazione : .58.61[/TD]
[/TR]
[TR]
[TD]Ritardo : 499[/TD]
[/TR]
[TR]
[TD]RitMax : 499[/TD]
[/TR]
[TR]
[TD]Freq : 18[/TD]
[/TR]
[TR]
[TD]IncrRitMx : 179[/TD]
[/TR]
[TR]
[TD]IncrRitMaxSto : 106[/TD]
[/TR]
[TR]
[TD]strIncrementi : 71.106.621[/TD]
[/TR]
[TR]
[TD]Numero Incrementi : 3[/TD]
[/TR]
[TR]
[TD]Numeri Formazione : .67.69[/TD]
[/TR]
[TR]
[TD]Ritardo : 476[/TD]
[/TR]
[TR]
[TD]RitMax : 476[/TD]
[/TR]
[TR]
[TD]Freq : 19[/TD]
[/TR]
[TR]
[TD]IncrRitMx : 179[/TD]
[/TR]
[TR]
[TD]IncrRitMaxSto : 104[/TD]
[/TR]
[TR]
[TD]strIncrementi : 104.08.483[/TD]
[/TR]
[TR]
[TD]Numero Incrementi : 3[/TD]
[/TR]
[TR]
[TD]Numeri Formazione : .45.66[/TD]
[/TR]
[TR]
[TD]Ritardo : 471[/TD]
[/TR]
[TR]
[TD]RitMax : 471[/TD]
[/TR]
[TR]
[TD]Freq : 19[/TD]
[/TR]
[TR]
[TD]IncrRitMx : 164[/TD]
[/TR]
[TR]
[TD]IncrRitMaxSto : 3[/TD]
[/TR]
[TR]
[TD]strIncrementi : 03.248[/TD]
[/TR]
[TR]
[TD]Numero Incrementi : 2[/TD]
[/TR]
[TR]
[TD]Numeri Formazione : .27.28[/TD]
[/TR]
[TR]
[TD]Ritardo : 460[/TD]
[/TR]
[TR]
[TD]RitMax : 460[/TD]
[/TR]
[TR]
[TD]Freq : 18[/TD]
[/TR]
[TR]
[TD]IncrRitMx : 155[/TD]
[/TR]
[TR]
[TD]IncrRitMaxSto : 0[/TD]
[/TR]
[TR]
[TD]strIncrementi : 214[/TD]
[/TR]
[TR]
[TD]Numero Incrementi : 1[/TD]
[/TR]
[TR]
[TD]Numeri Formazione : .55.61[/TD]
[/TR]
[TR]
[TD]Ritardo : 351[/TD]
[/TR]
[TR]
[TD]RitMax : 351[/TD]
[/TR]
[TR]
[TD]Freq : 22[/TD]
[/TR]
[TR]
[TD]IncrRitMx : 150[/TD]
[/TR]
[TR]
[TD]IncrRitMaxSto : 81[/TD]
[/TR]
[TR]
[TD]strIncrementi : 52.05.81.482[/TD]
[/TR]
[TR]
[TD]Numero Incrementi : 4[/TD]
[/TR]
[TR]
[TD]======================== [/TD]
[/TR]
[TR]
[TD]Mi sono fermato .... ma continuano ancora ….. (ho tolto il grafico)[/TD]
[/TR]
[TR]
[TD]Grazie Magia & Amaretto[/TD]
[/TR]
[TR]
[TD]======================== [/TD]
[/TR]
[TR]
[TD]
stickman.gif
[/TD]
[/TR]
[TR]
[TD]Buona notte a tutti.[/TD]
[/TR]
[TR]
[TD]A presto [/TD]
[/TR]
[TR]
[TD]Silop ;) ;) ;)[/TD]
[/TR]
[/TABLE]
 
silop2005;n1942901 ha scritto:
[TABLE="border: 0, cellpadding: 0, cellspacing: 0, width: 832"]
[TR]
[TD]
LOGOSILOP.gif
[/TD]
[/TR]
[TR]
[TD] [/TD]
[/TR]
[TR]
[TD]Ciao Lotto_tom ,[/TD]
[/TR]
[TR]
[TD]========================[/TD]
[/TR]
[TR]
[TD]ho aggiornato SPMT vers. 1.5.69 e relativo plug in SVP vers. 1.0.53[/TD]
[/TR]
[TR]
[TD]========================[/TD]
[/TR]
[TR]
[TD]ho lanciato lo script del bravo Magia ( amaretto) per l'archivio del superenalotto[/TD]
[/TR]
[TR]
[TD]quello pubblicato alle ore 18:41[/TD]
[/TR]
[TR]
[TD]e funziona perfettamente…. ecco alcune elaborazioni[/TD]
[/TR]
[TR]
[TD]sulle 4005 coppie per la sorte dell'ambo[/TD]
[/TR]
[TR]
[TD]========================[/TD]
[/TR]
[TR]
[TD]Range analisi : [00001] [87] 03.12.1997 - [02432] [146] 05.12.2015[/TD]
[/TR]
[TR]
[TD]Filtro Esaminato : aElencoIncrRitMax(nUpper)>= mIncrRitardoMaxSto[/TD]
[/TR]
[TR]
[TD]Lunghette esaminate : 4005 Valide : 227[/TD]
[/TR]
[TR]
[TD]Sorte : Ambo[/TD]
[/TR]
[TR]
[TD]Numero Minimo IncrRit : 00[/TD]
[/TR]
[TR]
[TD] [/TD]
[/TR]
[TR]
[TD]Lunghette ordinate per incremento ritardo max[/TD]
[/TR]
[TR]
[TD] [/TD]
[/TR]
[TR]
[TD]Numeri Formazione : .27.90[/TD]
[/TR]
[TR]
[TD]Ritardo : 897[/TD]
[/TR]
[TR]
[TD]RitMax : 897[/TD]
[/TR]
[TR]
[TD]Freq : 13[/TD]
[/TR]
[TR]
[TD]IncrRitMx : 562[/TD]
[/TR]
[TR]
[TD]IncrRitMaxSto : 219[/TD]
[/TR]
[TR]
[TD]strIncrementi : 219.57.54.1034[/TD]
[/TR]
[TR]
[TD]Numero Incrementi : 4[/TD]
[/TR]
[TR]
[TD]Numeri Formazione : .43.90[/TD]
[/TR]
[TR]
[TD]Ritardo : 553[/TD]
[/TR]
[TR]
[TD]RitMax : 553[/TD]
[/TR]
[TR]
[TD]Freq : 16[/TD]
[/TR]
[TR]
[TD]IncrRitMx : 275[/TD]
[/TR]
[TR]
[TD]IncrRitMaxSto : 161[/TD]
[/TR]
[TR]
[TD]strIncrementi : 161.39.85.190[/TD]
[/TR]
[TR]
[TD]Numero Incrementi : 4[/TD]
[/TR]
[TR]
[TD]Numeri Formazione : .11.55[/TD]
[/TR]
[TR]
[TD]Ritardo : 575[/TD]
[/TR]
[TR]
[TD]RitMax : 575[/TD]
[/TR]
[TR]
[TD]Freq : 15[/TD]
[/TR]
[TR]
[TD]IncrRitMx : 262[/TD]
[/TR]
[TR]
[TD]IncrRitMaxSto : 0[/TD]
[/TR]
[TR]
[TD]strIncrementi : 184[/TD]
[/TR]
[TR]
[TD]Numero Incrementi : 1[/TD]
[/TR]
[TR]
[TD]Numeri Formazione : .56.71[/TD]
[/TR]
[TR]
[TD]Ritardo : 553[/TD]
[/TR]
[TR]
[TD]RitMax : 553[/TD]
[/TR]
[TR]
[TD]Freq : 25[/TD]
[/TR]
[TR]
[TD]IncrRitMx : 226[/TD]
[/TR]
[TR]
[TD]IncrRitMaxSto : 173[/TD]
[/TR]
[TR]
[TD]strIncrementi : 173.137.28.225[/TD]
[/TR]
[TR]
[TD]Numero Incrementi : 4[/TD]
[/TR]
[TR]
[TD]Numeri Formazione : .43.68[/TD]
[/TR]
[TR]
[TD]Ritardo : 912[/TD]
[/TR]
[TR]
[TD]RitMax : 912[/TD]
[/TR]
[TR]
[TD]Freq : 6[/TD]
[/TR]
[TR]
[TD]IncrRitMx : 220[/TD]
[/TR]
[TR]
[TD]IncrRitMaxSto : 0[/TD]
[/TR]
[TR]
[TD]strIncrementi : 373[/TD]
[/TR]
[TR]
[TD]Numero Incrementi : 1[/TD]
[/TR]
[TR]
[TD]Numeri Formazione : .03.69[/TD]
[/TR]
[TR]
[TD]Ritardo : 631[/TD]
[/TR]
[TR]
[TD]RitMax : 631[/TD]
[/TR]
[TR]
[TD]Freq : 17[/TD]
[/TR]
[TR]
[TD]IncrRitMx : 180[/TD]
[/TR]
[TR]
[TD]IncrRitMaxSto : 21[/TD]
[/TR]
[TR]
[TD]strIncrementi : 21.159[/TD]
[/TR]
[TR]
[TD]Numero Incrementi : 2[/TD]
[/TR]
[TR]
[TD]Numeri Formazione : .58.61[/TD]
[/TR]
[TR]
[TD]Ritardo : 499[/TD]
[/TR]
[TR]
[TD]RitMax : 499[/TD]
[/TR]
[TR]
[TD]Freq : 18[/TD]
[/TR]
[TR]
[TD]IncrRitMx : 179[/TD]
[/TR]
[TR]
[TD]IncrRitMaxSto : 106[/TD]
[/TR]
[TR]
[TD]strIncrementi : 71.106.621[/TD]
[/TR]
[TR]
[TD]Numero Incrementi : 3[/TD]
[/TR]
[TR]
[TD]Numeri Formazione : .67.69[/TD]
[/TR]
[TR]
[TD]Ritardo : 476[/TD]
[/TR]
[TR]
[TD]RitMax : 476[/TD]
[/TR]
[TR]
[TD]Freq : 19[/TD]
[/TR]
[TR]
[TD]IncrRitMx : 179[/TD]
[/TR]
[TR]
[TD]IncrRitMaxSto : 104[/TD]
[/TR]
[TR]
[TD]strIncrementi : 104.08.483[/TD]
[/TR]
[TR]
[TD]Numero Incrementi : 3[/TD]
[/TR]
[TR]
[TD]Numeri Formazione : .45.66[/TD]
[/TR]
[TR]
[TD]Ritardo : 471[/TD]
[/TR]
[TR]
[TD]RitMax : 471[/TD]
[/TR]
[TR]
[TD]Freq : 19[/TD]
[/TR]
[TR]
[TD]IncrRitMx : 164[/TD]
[/TR]
[TR]
[TD]IncrRitMaxSto : 3[/TD]
[/TR]
[TR]
[TD]strIncrementi : 03.248[/TD]
[/TR]
[TR]
[TD]Numero Incrementi : 2[/TD]
[/TR]
[TR]
[TD]Numeri Formazione : .27.28[/TD]
[/TR]
[TR]
[TD]Ritardo : 460[/TD]
[/TR]
[TR]
[TD]RitMax : 460[/TD]
[/TR]
[TR]
[TD]Freq : 18[/TD]
[/TR]
[TR]
[TD]IncrRitMx : 155[/TD]
[/TR]
[TR]
[TD]IncrRitMaxSto : 0[/TD]
[/TR]
[TR]
[TD]strIncrementi : 214[/TD]
[/TR]
[TR]
[TD]Numero Incrementi : 1[/TD]
[/TR]
[TR]
[TD]Numeri Formazione : .55.61[/TD]
[/TR]
[TR]
[TD]Ritardo : 351[/TD]
[/TR]
[TR]
[TD]RitMax : 351[/TD]
[/TR]
[TR]
[TD]Freq : 22[/TD]
[/TR]
[TR]
[TD]IncrRitMx : 150[/TD]
[/TR]
[TR]
[TD]IncrRitMaxSto : 81[/TD]
[/TR]
[TR]
[TD]strIncrementi : 52.05.81.482[/TD]
[/TR]
[TR]
[TD]Numero Incrementi : 4[/TD]
[/TR]
[TR]
[TD]========================[/TD]
[/TR]
[TR]
[TD]Mi sono fermato .... ma continuano ancora ….. (ho tolto il grafico)[/TD]
[/TR]
[TR]
[TD]Grazie Magia & Amaretto[/TD]
[/TR]
[TR]
[TD]========================[/TD]
[/TR]
[TR]
[TD]
stickman.gif
[/TD]
[/TR]
[TR]
[TD]Buona notte a tutti.[/TD]
[/TR]
[TR]
[TD]A presto[/TD]
[/TR]
[TR]
[TD]Silop ;) ;) ;)[/TD]
[/TR]
[/TABLE]


Ok allora aggiorno anche io spaziometria all'ultima versione e riprovo ;).

Grazie Silop! E grazie ancora magia e amaretto! :)

Buona notte a tutti/e
 
Ultima modifica:
magia;n1943025 ha scritto:
Buonasera,
Salutando gli intervenuti , al post #06 ,abbiamo corretto il listato per il SuperEnalotto ed aggiunto quello per il 10eLotto.
Pregasi controllare.


Ciao grande magia :) ringraziandoti ancora per quanto fatto devo purtroppo segnalarti questa incongruenza nel report finale dell'ultimo script per superenalotto cui fai riferimento per una nostra verifica:



Range analisi : [00001] [87] 03.12.1997 - [02363] [77] 27.06.2015
Filtro Esaminato : aElencoIncrRitMax(nUpper) = mIncrRitardoMaxSto
Lunghette esaminate : 622614630 Valide : 12
OVVIAMENTE NON LE HO ESAMINATE TUTTE MA SOLO UNA PICCOLISSIMA PARTE! :p :D (c.a 1000)
Sorte : Ambo
Numero Minimo IncrRit : 05

Lunghette ordinate per incremento ritardo max

Numeri Formazione : 1.2.3.6.60.89
Ritardo : 11 <- questi dovrebbero essere uguali
RitMax : 72 <- questi dovrebbero essere uguali

Freq : 260
IncrRitMx : 0 <- questi dovrebbero essere uguali
IncrRitMaxSto : 27 < questi dovrebbero essere uguali

strIncrementi : 11.26.01.09.03.08.27.27
Numero Incrementi : 8


Ovvero nonostante

aElencoIncrRitMax(nUpper) = mIncrRitardoMaxSto

venga rispettato come condizione di scelta (
incmaxattuale = incmaxstorico=27) non si può dire altrettanto per RA e RS che come vedi anche in questo esempio non sono affatto uguali (ra 11 e rs 72) come invece dovrebbero essere.

Per quanto riguarda gli errori che dava prima comunque non li da più.

Ancora GRAZIE e complimenti per l'abilità che avete anche tu e amaretto nel programmare con il linguaggio di spaziometria! ;)
 
Ultima modifica:

Ultima estrazione Lotto

  • Estrazione del lotto
    giovedì 23 gennaio 2025
    Bari
    86
    50
    83
    38
    78
    Cagliari
    11
    36
    52
    31
    74
    Firenze
    56
    59
    86
    27
    84
    Genova
    03
    61
    53
    11
    38
    Milano
    13
    14
    79
    87
    47
    Napoli
    21
    90
    48
    55
    37
    Palermo
    56
    46
    59
    02
    53
    Roma
    74
    13
    07
    38
    77
    Torino
    27
    54
    62
    36
    81
    Venezia
    09
    14
    69
    28
    62
    Nazionale
    32
    73
    27
    11
    51
    Estrazione Simbolotto
    Bari
    36
    27
    19
    08
    24

Ultimi Messaggi

Indietro
Alto