LottoGAM Forum

BIAMBI a TUTTE + NZ con Ritardo Minimo Storico Impostabile, Output su TXT e ricerca frazionabile

« Older   Newer »
  Share  
Gam73
view post Posted on 18/4/2023, 08:39 by: Gam73
Avatar

Top Member

Group:
Administrator
Posts:
1,719

Status:


Ciao a tutti,
da una ricerca promossa da Cinzia28 ho realizzato il seguente Script per la ricerca dei Biambi con ritardo massimo impostabile per la sorte su TUTTE+NZ.

Option Explicit
Dim FileOut
Sub Main
'-------------------------------------
'Scritto da GAM il 17.04.2023 x Cinzia
'BIAMBI a TUTTE + NZ - v. 1.0
'-------------------------------------

Dim R,R_NZ,Ambo1(2),Ambo2(2)
Dim MatriceAmbi(4005,2)
Dim rAtt,rSto,Pre,Frm
Dim LivArch,Riga,SFile
Dim x,y,q,i,j,eIni,eFin,n,RitMin

eIni = 7440'EstrazioneIni
eFin = EstrazioneFin

RitMin = 50 ' Ritardo Minimo
R = TT_
R_NZ = 12

SFile = GetDirectoryTemp & "Ricerca_di_Biambi_su_TT_e_NZ_" & "_da_" & EstrazioneIni & "_a_" & EstrazioneFin & "_L" & LivArch & ".txt"

Call EliminaFile(SFile) ' cancella eventualmente il file se gia esiste

For x = 1 To 89
For y = x + 1 To 90
q = q + 1
MatriceAmbi(q,1) = x
MatriceAmbi(q,2) = y
Next
Next
' ScriviMatrice (MatriceAmbi)
For i = 1 To 4004
If ScriptInterrotto Then
Call ScriviFile(SFile,TempoTrascorso)
Call CloseFileHandle(SFile) ' chiudo l'handle al file
Call LanciaFile(SFile) ' lancio il file si aprira notepad
Scrivi TempoTrascorso
Scrivi i
Scrivi j
Scrivi n
Exit Sub
End If

Ambo1(1) = MatriceAmbi(i,1)
Ambo1(2) = MatriceAmbi(i,2)
For j = i + 1 To 4005
If ScriptInterrotto Then
Call ScriviFile(SFile,TempoTrascorso)
Call CloseFileHandle(SFile) ' chiudo l'handle al file
Call LanciaFile(SFile) ' lancio il file si aprira notepad
Scrivi TempoTrascorso
Scrivi i
Scrivi j
Scrivi n
Exit Sub
End If

Ambo2(1) = MatriceAmbi(j,1)
Ambo2(2) = MatriceAmbi(j,2)
n = n + 1

Riga = FormattaStringa(n,"0000000") & " Ambo " & StringaNumeri(Ambo1,,1) & " " & StringaNumeri(Ambo2,,1)',,0

'Messaggio(i & " " & j & " -> " & n & " Ambi")
AvanzamentoElab 1,8018018,n

Call AddNumeriToGruppoStatistico(Ambo1,R)
Call AddNumeriToGruppoStatistico(Ambo2,R)
Call AddNumeriToGruppoStatistico(Ambo1,R_NZ)
Call AddNumeriToGruppoStatistico(Ambo2,R_NZ)

Call StatisticaGruppoFormazioni(2,rAtt,rSto,Pre,Frm,eIni,eFin,LivArch)

If rSto < RitMin Then

Riga = Riga & " RitATT " & FormattaStringa(rAtt,"000") & " RitSTO " & FormattaStringa(rSto,"000") & " Pre " & Pre
Call ScriviFile (SFile,Riga)
End If
Next
Next
Call ScriviFile(SFile,TempoTrascorso)
Call CloseFileHandle(SFile) ' chiudo l'handle al file
Call LanciaFile(SFile) ' lancio il file si aprira notepad

Scrivi
Scrivi TempoTrascorso
Scrivi i
Scrivi j
Scrivi n

End Sub


Per i meno avvezzi ecco qualche delucidazione su come elabora la ricerca lo script.

Già nelle prime righe è possibile vedere che genera nelle prime righe una matrice con tutti i 4.005 ambi che si formano coi 90 estratti.

Se togliete l'apice alla seguente riga
' ScriviMatrice (MatriceAmbi)
E stoppate lo script, li vedete tutti nell' output.

A quel punto i due cicli for non fanno altro che prendere il primo ambo e tenerlo fisso, poi passano al secondo e via via fino al 4005, poi diventa fisso il secondo e via via fino alla fine.

Se fate un copia&incolla dei 4005 ambi in Excel, potete verificare cosa fanno gli indici.

Senza dover fare la ricerca tutta d'un fiato, potete intervenire sugli indici, soprattutto la "i", vi consiglio.
Per esempio, impostando

For i = 520 To 1002

la ricerca parte dal seguente Biambo
07.08 - 07.09.
Verificabile via Excel, infatti alla riga 520 troverete il biambo citato.

l'altro ciclo rimane come scritto:

For j = i + 1 To 4005

Ovvio che più il valore i si avvicina a 4004, meno diventano gli ambi da verificare e più rapidi saranno i cicli.

Lo script scrive gli ambi che soddisfano lo storico minore di 50 su un file di txt.

Se però volete interrompere prima che sia terminato l'intervallo che avete impostato, potete farlo.

Si aprirà il file di txt coi biambi trovati (copiateli e salvateli altrove, oppure fate salva con nome diverso, perché se rifate partire il file nuovo cancella il precedente) mentre in output avrete come informazioni il tempo trascorso, l'indice raggiunto fino a quel momento, sia i, sia j. Così potete ripartire da dove vi siete fermati.

Spero sia tutto chiaro.
Saluti
 
Web  Top
7 replies since 18/4/2023, 08:39   257 views
  Share