Dim k As Long
Dim Sorte As Long = CInt(InputBox("sorte di verifica ", , 2))
ReDim aN(0) As Long 'Array(1, 2, 3, 4, 5, 6, 7)
'Dim aRuote As Variant = Array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
ReDim aruote(0) As Long
aruote = ScegliRuote
Dim Ris As STRUCT_VERIFICAESITO_RISULTATO
Dim aTrovati () As STRUCT_STATISTICHE_TROVATI
Dim colpidiricerca As Long
Dim es As Long
Dim esini As Long
Dim esfin As Long
Dim colpomassimo As Long
colpomassimo = 0
Dim casipositivi As Long
Dim casinegativi As Long
Dim casiincorso As Long
Dim numerodivoltecheicolpidiricercasonostatisuperati As Long
numerodivoltecheicolpidiricercasonostatisuperati = 0
casipositivi = 0
casinegativi = 0
casiincorso = 0
Dim colpirimanentiminimirispettocolpidiricerca As Long
Dim colpirimanentiminimirispettocolpomassimo As Long
colpirimanentiminimirispettocolpidiricerca = esfin
colpirimanentiminimirispettocolpomassimo = esfin
Dim colpirimanentiinteressanti As Integer
Dim formazioneconcolpirimanentiminimiok As String
Dim quanteestrazioniverificare As Long
quanteestrazioniverificare = CInt(InputBox("quante ultime estrazioni verificare ", , 100))
Dim classedisviluppo As Long
classedisviluppo = CInt(InputBox("classe di sviluppo ", , 10))
Dim colonnesviluppate As Long
Dim cln As Long
colpidiricerca = CInt(InputBox("colpi di ricerca ", , 3))
Dim dafileodatabella As String = InputBox("i numeri da sviluppare e analizzare li prendi da file (f) o da tabella (t)", , "t")
If dafileodatabella = "t" Then
ScegliNumeri(aN)
colonnesviluppate = InitSviluppoIntegrale(aN, classedisviluppo)
If colonnesviluppate > 4005 Then
MsgBox ("attenzione le formazioni integrali generate da questa tua scelta di sviluppo superano le 4.000 e non possono essere gestite per questo tipo di analisi. Scegliere un gruppo base + contenuto o una classe di sviluppo non inferiore ai 2 punti rispetto quella del gruppo base scelto ")
'Stop
'Exit
End
End If
esfin = EstrazioneFin
esini = EstrazioneFin - quanteestrazioniverificare
Scrivi
Scrivi "Script di TEST offerto dalla tom's bakery versione TWEENBASIC :-)"
Select Case (dafileodatabella)
Case "t"
Scrivi "Modalità scelta per il recupero del gruppo base: tramite TABELLA"
Case "f"
Scrivi "Modalita' scelta per il recupero del gruppo base: tramite FILE TXT"
Scrivi "File txt sorgente utilizzato " & sFileLunghette
End Select
Scrivi "Periodo analizzato " & GetInfoEstrazione(esini) & " - " & GetInfoEstrazione(esfin)
Scrivi "Numero ultime estrazioni verificate " & esfin - esini
Scrivi "Ruote scelte per la verifica " & NomeRuota(aruote)
Scrivi "gruppo base analizzato " & StringaNumeri(aN) & " classe " & UBound (aN)
Scrivi "Classe di sviluppo " & classedisviluppo
Scrivi "Sorte minima di verifica " & Sorte
Scrivi "Colpi di ricerca " & colpidiricerca
Scrivi "Colonne sviluppate in modo integrale " & colonnesviluppate
Scrivi
ReDim aretcol(classedisviluppo) As Long
'ReDim aretcol(90) As Long
If colonnesviluppate > 0 Then
Do While GetCombSviluppo(aretcol) = True
cln = cln + 1
frmScript.lblMessaggio = " Enjoy with this little Script by tom :) - colonna elaborata n. " & cln & " su " & colonnesviluppate * UBound(aruote)
For es = esini To esfin
If VerificaEsito(aretcol, Sorte, es, Ris, aruote, , , aTrovati) Then
Scrivi
Scrivi "Esito al colpo " & Ris.ColpiUsati
Scrivi "Sorte uscita " & Ris.EsitoTrovato
Scrivi "Presenze " & Ris.Presenze
Scrivi "PresenzeMult " & Ris.PresenzeMultiple
Scrivi "Colpo massimo rilevato " & colpomassimo
Scrivi
casipositivi = casipositivi + 1
For k = 1 To UBound(aTrovati)
Scrivi (StringaNumeri(aTrovati(k).aNumeri) & " all'estrazione " & aTrovati(k).idEstrazione & " ruota " & NomeRuota(aTrovati(k).idRuota))
If Ris.ColpiUsati > colpomassimo Then
colpomassimo = Ris.ColpiUsati
End If
If Ris.ColpiUsati > colpidiricerca Then
Scrivi
Scrivi " esito ottenuto con " & Ris.ColpiUsati - colpidiricerca & " colpi in + rispetto i " & colpidiricerca & " colpi di ricerca impostatati"
Scrivi
numerodivoltecheicolpidiricercasonostatisuperati = numerodivoltecheicolpidiricercasonostatisuperati + 1
'casinegativi = casinegativi + 1
End If
If Ris.ColpiUsati > colpomassimo Then
Scrivi
Scrivi " esito ottenuto con " & Ris.ColpiUsati - colpomassimo & " colpi in + rispetto il valore " & colpomassimo & " di colpo massimo rilevato"
Scrivi
End If
Next
Else
Scrivi
Scrivi "Es. " & es & GetInfoEstrazione(es)
Scrivi "Esito non trovato"
Scrivi
'Scrivi "colpi rimanenti " & colpidiricerca - Ris.ColpiUsati
If colpidiricerca - Ris.ColpiUsati < 0 Then
Scrivi
Scrivi "Esito negativo ", True, , , 1
Scrivi
casinegativi = casinegativi + 1
Else
Scrivi
Scrivi "Esito in corso...", True, , , 2
Scrivi "colpi rimanenti rispetto colpi di ricerca " & colpidiricerca - Ris.ColpiUsati
Scrivi "formazione interessata " & StringaNumeri(aretcol)
If colpidiricerca - Ris.ColpiUsati < colpirimanentiminimirispettocolpidiricerca Then
colpirimanentiminimirispettocolpidiricerca = colpidiricerca - Ris.ColpiUsati
Scrivi "colpi rimanenti minimi rispetto colpi di ricerca " & colpirimanentiminimirispettocolpidiricerca
If colpirimanentiminimirispettocolpidiricerca = 0 Then
Scrivi "adesso i colpi rimanenti minimi rispetto i colpi di ricerca sono a 0!"
End If
End If
Scrivi "colpi rimanenti rispetto colpo massimo " & colpomassimo - Ris.ColpiUsati
If colpomassimo - Ris.ColpiUsati < colpirimanentiminimirispettocolpomassimo Then
colpirimanentiminimirispettocolpomassimo = colpomassimo - Ris.ColpiUsati
Scrivi "colpi rimanenti minimi rispetto colpomassimo " & colpirimanentiminimirispettocolpomassimo
If colpirimanentiminimirispettocolpomassimo = 0 Then
Scrivi "adesso i colpi rimanenti minimi rispetto colpo massimo sono a 0!"
End If
End If
If colpirimanentiminimirispettocolpomassimo <= 3 Then
colpirimanentiinteressanti = colpirimanentiminimirispettocolpomassimo
formazioneconcolpirimanentiminimiok = StringaNumeri(aretcol)
End If
Scrivi
casiincorso = casiincorso + 1
End If
End If
Scrivi
Next
If bScriptInterrotto Then Exit Do
AvanzamentoElaborazione (cln, colonnesviluppate)
Loop
End If
'------ fine sviluppo e analisi da tabella...
Else
'post relativo al code x leggere file in tweenbasic
'https://forum.lottoced.com/threads/nuovo-ambiente-script-area-tecnica.2207989/post-2496263
'https://forum.lottoced.com/threads/nuovo-ambiente-script-area-tecnica.2207989/post-2496547
Dim sFileLunghette As String ' percorso del file delle lunghette
Dim sRecord As String ' stringa per leggere il file delle lunghette
Dim sChrSep As String ' carattere separatore dei numeri nel record della lunghetta
sFileLunghette = ".\filediprova.txt"
Dim f As Integer ' puntatore per aprire il file delle lunghette
Dim sLunghetta As String ' lunghetta originale che ha generatola riduzione
sChrSep = "."
'non permette la verifica di esiti multipli nel tempo...
'si ferma al primo esito riscontrato...
If FileExist(sFileLunghette) Then
'If KillFile(sFileOut) Then
f = FreeFile ' apro un puntatore libero
Open sFileLunghette For Input As f ' apre i lfile
Do Until EOF(f) ' cicla finche non diventa End Of File
Line Input #f, sRecord
sLunghetta = sRecord
Scrivi "formazione letta da file txt " & sLunghetta
Dim anumbase As Variant
anumbase = Split(sLunghetta, ".")
colonnesviluppate = InitSviluppoIntegrale(anumbase, classedisviluppo)
If colonnesviluppate > 4005 Then
MsgBox ("attenzione le formazioni integrali generate da questa tua scelta di sviluppo superano le 4.000 e non possono essere gestite per questo tipo di analisi. Scegliere un gruppo base + contenuto o una classe di sviluppo non inferiore ai 2 punti rispetto quella del gruppo base scelto ")
'Stop
'Exit
End
End If
esfin = EstrazioneFin
esini = EstrazioneFin - quanteestrazioniverificare
Scrivi
Scrivi "Script di TEST offerto dalla tom's bakery versione TWEENBASIC :-)"
Select Case (dafileodatabella)
Case "t"
Scrivi "Modalità scelta per il recupero del gruppo base: tramite TABELLA"
Case "f"
Scrivi "Modalita' scelta per il recupero del gruppo base: tramite FILE TXT"
Scrivi "File txt sorgente utilizzato " & sFileLunghette
End Select
Scrivi "Periodo analizzato " & GetInfoEstrazione(esini) & " - " & GetInfoEstrazione(esfin)
Scrivi "Numero ultime estrazioni verificate " & esfin - esini
Scrivi "Ruote scelte per la verifica " & NomeRuota(aruote)
Scrivi "gruppo base analizzato " & StringaNumeri(aN) & " classe " & UBound (aN)
Scrivi "Classe di sviluppo " & classedisviluppo
Scrivi "Sorte minima di verifica " & Sorte
Scrivi "Colpi di ricerca " & colpidiricerca
Scrivi "Colonne sviluppate in modo integrale " & colonnesviluppate
Scrivi
ReDim aretcol(classedisviluppo) As Long
'ReDim aretcol(90) As Long
If colonnesviluppate > 0 Then
Do While GetCombSviluppo(aretcol) = True
cln = cln + 1
frmScript.lblMessaggio = " Enjoy with this little Script by tom :) - colonna elaborata n. " & cln & " su " & colonnesviluppate * UBound(aruote)
For es = esini To esfin
If VerificaEsito(aretcol, Sorte, es, Ris, aruote, , , aTrovati) Then
Scrivi
Scrivi "Esito al colpo " & Ris.ColpiUsati
Scrivi "Sorte uscita " & Ris.EsitoTrovato
Scrivi "Presenze " & Ris.Presenze
Scrivi "PresenzeMult " & Ris.PresenzeMultiple
Scrivi "Colpo massimo rilevato " & colpomassimo
Scrivi
casipositivi = casipositivi + 1
For k = 1 To UBound(aTrovati)
Scrivi (StringaNumeri(aTrovati(k).aNumeri) & " all'estrazione " & aTrovati(k).idEstrazione & " ruota " & NomeRuota(aTrovati(k).idRuota))
If Ris.ColpiUsati > colpomassimo Then
colpomassimo = Ris.ColpiUsati
End If
If Ris.ColpiUsati > colpidiricerca Then
Scrivi
Scrivi " esito ottenuto con " & Ris.ColpiUsati - colpidiricerca & " colpi in + rispetto i " & colpidiricerca & " colpi di ricerca impostatati"
Scrivi
numerodivoltecheicolpidiricercasonostatisuperati = numerodivoltecheicolpidiricercasonostatisuperati + 1
'casinegativi = casinegativi + 1
End If
If Ris.ColpiUsati > colpomassimo Then
Scrivi
Scrivi " esito ottenuto con " & Ris.ColpiUsati - colpomassimo & " colpi in + rispetto il valore " & colpomassimo & " di colpo massimo rilevato"
Scrivi
End If
Next
Else
Scrivi
Scrivi "Es. " & es & GetInfoEstrazione(es)
Scrivi "Esito non trovato"
Scrivi
'Scrivi "colpi rimanenti " & colpidiricerca - Ris.ColpiUsati
If colpidiricerca - Ris.ColpiUsati < 0 Then
Scrivi
Scrivi "Esito negativo ", True, , , 1
Scrivi
casinegativi = casinegativi + 1
Else
Scrivi
Scrivi "Esito in corso...", True, , , 2
Scrivi "colpi rimanenti rispetto colpi di ricerca " & colpidiricerca - Ris.ColpiUsati
Scrivi "formazione interessata " & StringaNumeri(aretcol)
If colpidiricerca - Ris.ColpiUsati < colpirimanentiminimirispettocolpidiricerca Then
colpirimanentiminimirispettocolpidiricerca = colpidiricerca - Ris.ColpiUsati
Scrivi "colpi rimanenti minimi rispetto colpi di ricerca " & colpirimanentiminimirispettocolpidiricerca
If colpirimanentiminimirispettocolpidiricerca = 0 Then
Scrivi "adesso i colpi rimanenti minimi rispetto i colpi di ricerca sono a 0!"
End If
End If
Scrivi "colpi rimanenti rispetto colpo massimo " & colpomassimo - Ris.ColpiUsati
If colpomassimo - Ris.ColpiUsati < colpirimanentiminimirispettocolpomassimo Then
colpirimanentiminimirispettocolpomassimo = colpomassimo - Ris.ColpiUsati
Scrivi "colpi rimanenti minimi rispetto colpomassimo " & colpirimanentiminimirispettocolpomassimo
If colpirimanentiminimirispettocolpomassimo = 0 Then
Scrivi "adesso i colpi rimanenti minimi rispetto colpo massimo sono a 0!"
End If
End If
If colpirimanentiminimirispettocolpomassimo <= 3 Then
colpirimanentiinteressanti = colpirimanentiminimirispettocolpomassimo
formazioneconcolpirimanentiminimiok = StringaNumeri(aretcol)
End If
Scrivi
casiincorso = casiincorso + 1
End If
End If
Scrivi
Next
Loop
End If
If cln Mod 100 = 0 Then DoEvents
If bScriptInterrotto Then Exit Do
AvanzamentoElaborazione(cln, colonnesviluppate)
Loop
Close f ' chiude il file
End If ' x lettura file txt
End If ' da file o da tabella
Scrivi "Riassuntino finale"
Scrivi
Scrivi "Script di TEST offerto dalla tom's bakery versione TWEENBASIC :-)"
Select Case (dafileodatabella)
Case "t"
Scrivi "Modalità scelta per il recupero del gruppo base: tramite TABELLA"
Case "f"
Scrivi "Modalita' scelta per il recupero del gruppo base: tramite FILE TXT"
Scrivi "File txt sorgente utilizzato " & sFileLunghette
End Select
Scrivi "Periodo analizzato " & GetInfoEstrazione(esini) & " - " & GetInfoEstrazione(esfin)
Scrivi "Numero ultime estrazioni verificate " & esfin - esini
Scrivi "Ruote scelte per la verifica " & NomeRuota(aruote)
Scrivi "Gruppo base analizzato " & StringaNumeri(aN) & " classe " & UBound (aN)
Scrivi "Classe di sviluppo " & classedisviluppo
Scrivi "Sorte minima di verifica " & Sorte
Scrivi "Colpi di ricerca " & colpidiricerca
Scrivi "Colonne sviluppate in modo integrale " & colonnesviluppate
Scrivi
Scrivi "colpo massimo generale rilevato " & colpomassimo
Scrivi "casi positivi generali " & casipositivi
Scrivi "casi negativi generali " & casinegativi
Scrivi "casi in corso generali " & casiincorso
Scrivi "n. casi in cui i colpi di ricerca sono stati superati " & numerodivoltecheicolpidiricercasonostatisuperati
Dim casitotali As Long
casitotali = casipositivi + casinegativi + casiincorso
If casipositivi <> 0 Then
Scrivi "%+ " & (casipositivi / casitotali) * 100
End If
Scrivi
Scrivi "formazione con colpi rimanenti minimi interessanti (rispetto al colpo massimo) e <= 3 : " & formazioneconcolpirimanentiminimiok
Scrivi "colpi minimi interessanti relativi (rispetto al colpo massimo) " & colpirimanentiinteressanti
Scrivi
Scrivi "colpi rimanenti minimi rispetto colpi di ricerca " & colpirimanentiminimirispettocolpidiricerca
Scrivi "colpi rimanenti minimi rispetto colpo massimo " & colpirimanentiminimirispettocolpomassimo
Scrivi
Scrivi "Tt " & TempoElaborazioneSecondi
'------- output riassuntino finale anche in msgextra
frmScript.msgextra = "Riassuntino finale " & _
" Script di TEST offerto dalla tom's bakery versione TWEENBASIC :-)" & _
" Periodo analizzato " & GetInfoEstrazione(esini) & " - " & GetInfoEstrazione(esfin) & _
" Numero ultime estrazioni verificate " & esfin - esini & " Ruote scelte per la verifica " & NomeRuota(aruote) & _
" Gruppo base analizzato " & StringaNumeri(aN) & " classe " & UBound (aN) & _
" Classe di sviluppo " & classedisviluppo & _
" Sorte minima di verifica " & Sorte & _
" Colpi di ricerca " & colpidiricerca & _
" Colonne sviluppate in modo integrale " & colonnesviluppate & _
" colpo massimo generale rilevato " & colpomassimo & _
" casi positivi generali " & casipositivi & _
" casi negativi generali " & casinegativi & _
" casi in corso generali " & casiincorso & _
" n. casi in cui i colpi di ricerca sono stati superati " & numerodivoltecheicolpidiricercasonostatisuperati & _
" formazione con colpi rimanenti minimi interessanti (rispetto al colpo massimo) e <= 3 : " & formazioneconcolpirimanentiminimiok & _
" colpi minimi interessanti relativi (rispetto al colpo massimo) " & colpirimanentiinteressanti & _
" colpi rimanenti minimi rispetto colpi di ricerca " & colpirimanentiminimirispettocolpidiricerca & _
" colpi rimanenti minimi rispetto colpo massimo " & colpirimanentiminimirispettocolpomassimo & _
" Tt " & TempoElaborazioneSecondi
' Select Case (dafileodatabella)
' Case "t"
' "Modalità scelta per il recupero del gruppo base: tramite TABELLA"
' Case "f"
' "Modalita' scelta per il recupero del gruppo base: tramite FILE TXT"
' "File txt sorgente utilizzato " & sFileLunghette
' End Select
' casitotali = casipositivi + casinegativi + casiincorso & _
' "%+ " & (casipositivi / casitotali) * 100 & _