Marcorun
Advanced Member >GOLD<
Salve,chiedo se possibile modificare questo script che Claudio8 realizzò su mia richiesta,facendo in modo che la tabella risultante mostri le colonne con il ritardo di estratto sulla prima colonna ,il ritardo dell'ambo sulla seconda,e così via ,in modo che poi si possano ordinare anche in base all'ordinamento multiplo dei ritardi.....spero di essermi spiegato.penso che x Claudio8 che lo ha realizzato sia un gioco da ragazzi ....GRAZIE
Sub Main
Dim idEstr
Dim Inizio,Fine,Ruo,Sorte,RetColpi,RetEstratti,RetColpi2,RetColpi3,RetEsito,arc
Dim nClasseFrz
Dim id,k
Dim nElemFrz
Dim nQesito
Dim nEstrTot
Dim nFrqMedia
Dim sNomeFrz
arc = 1 'InputBox(" [ 1 ]=Archivio 10eLotto classico - [ 2 ]=Archivio 10L8 5minuti",,1)
ImpostaArchivio10ELotto(arc)
Inizio = EstrazioneFinDL - 300
Fine = EstrazioneFinDL - 50
Sorte = ScegliEsito(1,1,10)
nEstrTot =(Fine + 1) - Inizio
ReDim aElemFormazione(0)
Call RichiediFormazione(aElemFormazione,nClasseFrz,sNomeFrz)
nElemFrz = UBound(aElemFormazione) 'array (num massimo elementi Formazione)
ReDim aValStat(nElemFrz,4) ' dimensiono matrice aValStat
If nClasseFrz >= 1 Then
For id = 1 To nElemFrz
ReDim aNumInGioco(0)
Call GetNumInGiocoFromElemFrz(id,aElemFormazione,aNumInGioco,nClasseFrz)
' ciclo storico
For idEstr = Inizio To Fine
If VerificaEsitoDL(aNumInGioco,idEstr,Sorte,1,RetEsito) = True Then
aValStat(id,0) = 0
If RetEsito = "Estratto" Then nQesito = Combinazioni(1,Sorte)
If RetEsito = "Ambo" Then nQesito = Combinazioni(2,Sorte)
If RetEsito = "Terno" Then nQesito = Combinazioni(3,Sorte)
If RetEsito = "Quaterna" Then nQesito = Combinazioni(4,Sorte)
If RetEsito = "Cinquina" Then nQesito = Combinazioni(5,Sorte)
If RetEsito = "Sestina" Then nQesito = Combinazioni(6,Sorte)
If RetEsito = "Settina" Then nQesito = Combinazioni(7,Sorte)
If RetEsito = "Ottina" Then nQesito = Combinazioni(8,Sorte)
If RetEsito = "Novina" Then nQesito = Combinazioni(9,Sorte)
If RetEsito = "Decina" Then nQesito = Combinazioni(10,Sorte)
aValStat(id,1) = aValStat(id,1) + nQesito
aValStat(id,3) = 0
aValStat(id,4) = aValStat(id,4) + 1
Else
aValStat(id,0) = aValStat(id,0) + 1
If aValStat(id,0) > aValStat(id,2) Then
aValStat(id,2) = aValStat(id,0)
aValStat(id,3) = aValStat(id,3) + 1
End If
End If
If ScriptInterrotto Then Exit For
Next
Call AvanzamentoElab(1,nElemFrz,id)
If ScriptInterrotto Then Exit For
Next
Dim aV
aV = Array("","Formazione","Ritardo","Frequenza","RitMax","IncrRitMax","Presenze","I.C.","1°Esito","2°Esito","3°Esito")
'aV = Array("","Formazione","Ritardo","Frequenza","RitMax","IncrRitMax","Presenze","I.C.","Clp1°Esito","Clp2°Esito")
Call InitTabella(aV,2,,3,5)
For id = 1 To nElemFrz
ReDim aNumInGioco(0)
Call GetNumInGiocoFromElemFrz(id,aElemFormazione,aNumInGioco,nClasseFrz)
aV(1) = StringaNumeri(aNumInGioco)
aV(2) = aValStat(id,0)'Ritardo
aV(3) = aValStat(id,1)'Freq.
aV(4) = aValStat(id,2)'RitardoMax
aV(5) = aValStat(id,3)'IncrRitMax
aV(6) = aValStat(id,4)'Presenze
nFrqMedia = Dividi(nEstrTot,aValStat(id,4))
aV(7) = Round(Dividi(aValStat(id,0),nFrqMedia),3) ' indice di convenienza ??????
If VerificaEsitoDL(aNumInGioco,idEstr,Sorte,EstrazioniArchivioDL - Fine,,RetColpi,RetEstratti) Then
aV(8) = RetColpi & "° -- " & RetEstratti
Else
aV(8) = "-" '0
End If
If VerificaEsitoDL(aNumInGioco,idEstr + RetColpi,Sorte,EstrazioniArchivioDL - Fine - RetColpi,,RetColpi2) Then
aV(9) = " + " & RetColpi2
Else
aV(9) = " - "
End If
If VerificaEsitoDL(aNumInGioco,idEstr + RetColpi + RetColpi2,Sorte,EstrazioniArchivioDL - Fine - RetColpi - RetColpi2,,RetColpi3) Then
aV(10) = " + " & RetColpi3
Else
aV(10) = " - "
End If
Call AddRigaTabella(aV)
Next
If arc = 1 Then
Call Scrivi("Statistica del 10eLotto Normale per " & NomeSorte(Sorte) & " by Mike58 modificato da Claudio8",1,0,2,4,2)
Else
Call Scrivi("Statistica del 10eLotto 5 Minuti per " & NomeSorte(Sorte) & " by Mike58 modificato da Claudio8",1,0,2,4,2)
End If
Dim sTitolo
sTitolo = "Statistica_per_" & NomeSorte(Sorte) & "_AnalisiFormazione_" & sNomeFrz & "_da_" & Inizio & "_a_" & Fine & "_Tot_estraz_" & nEstrTot
Call SetTableTitle(sTitolo,"Arial",10,False,2)
Call SetTableHeight("100%") ' altezza
Call SetTableWidth("100%") '' larghezza
Call CreaTabellaOrdinabile(2,,,,,False) ' ordinamento 2a colonna
Else
Scrivi " Errore nella Selezione Formazioni dei Prametri .",1,,2,4,4
End If
End Sub
Sub GetNumInGiocoFromElemFrz(id,aElemFormazione,aNumInGioco,nClasseFrz)
Dim k
ReDim aNumInGioco(nClasseFrz)
For k = 1 To nClasseFrz
aNumInGioco(k) = aElemFormazione(id,k)
Next
End Sub
Sub RichiediFormazione(aElemFormazione,nClasseFrz,sNome)
Dim s
Dim n
Dim id
ReDim aNomiForm(0)
Call ElencoFileInDirectory(GetDirectoryAppData & "formazioni\",aNomiForm,".frz")
id = ScegliOpzioneMenu(aNomiForm,1,"Selezione formazione")
If GetElementiFormazione(aNomiForm(id),aElemFormazione) Then
nClasseFrz = GetClasseFormazione(aNomiForm(id))
sNome = aNomiForm(id)
End If
End Sub
Sub Main
Dim idEstr
Dim Inizio,Fine,Ruo,Sorte,RetColpi,RetEstratti,RetColpi2,RetColpi3,RetEsito,arc
Dim nClasseFrz
Dim id,k
Dim nElemFrz
Dim nQesito
Dim nEstrTot
Dim nFrqMedia
Dim sNomeFrz
arc = 1 'InputBox(" [ 1 ]=Archivio 10eLotto classico - [ 2 ]=Archivio 10L8 5minuti",,1)
ImpostaArchivio10ELotto(arc)
Inizio = EstrazioneFinDL - 300
Fine = EstrazioneFinDL - 50
Sorte = ScegliEsito(1,1,10)
nEstrTot =(Fine + 1) - Inizio
ReDim aElemFormazione(0)
Call RichiediFormazione(aElemFormazione,nClasseFrz,sNomeFrz)
nElemFrz = UBound(aElemFormazione) 'array (num massimo elementi Formazione)
ReDim aValStat(nElemFrz,4) ' dimensiono matrice aValStat
If nClasseFrz >= 1 Then
For id = 1 To nElemFrz
ReDim aNumInGioco(0)
Call GetNumInGiocoFromElemFrz(id,aElemFormazione,aNumInGioco,nClasseFrz)
' ciclo storico
For idEstr = Inizio To Fine
If VerificaEsitoDL(aNumInGioco,idEstr,Sorte,1,RetEsito) = True Then
aValStat(id,0) = 0
If RetEsito = "Estratto" Then nQesito = Combinazioni(1,Sorte)
If RetEsito = "Ambo" Then nQesito = Combinazioni(2,Sorte)
If RetEsito = "Terno" Then nQesito = Combinazioni(3,Sorte)
If RetEsito = "Quaterna" Then nQesito = Combinazioni(4,Sorte)
If RetEsito = "Cinquina" Then nQesito = Combinazioni(5,Sorte)
If RetEsito = "Sestina" Then nQesito = Combinazioni(6,Sorte)
If RetEsito = "Settina" Then nQesito = Combinazioni(7,Sorte)
If RetEsito = "Ottina" Then nQesito = Combinazioni(8,Sorte)
If RetEsito = "Novina" Then nQesito = Combinazioni(9,Sorte)
If RetEsito = "Decina" Then nQesito = Combinazioni(10,Sorte)
aValStat(id,1) = aValStat(id,1) + nQesito
aValStat(id,3) = 0
aValStat(id,4) = aValStat(id,4) + 1
Else
aValStat(id,0) = aValStat(id,0) + 1
If aValStat(id,0) > aValStat(id,2) Then
aValStat(id,2) = aValStat(id,0)
aValStat(id,3) = aValStat(id,3) + 1
End If
End If
If ScriptInterrotto Then Exit For
Next
Call AvanzamentoElab(1,nElemFrz,id)
If ScriptInterrotto Then Exit For
Next
Dim aV
aV = Array("","Formazione","Ritardo","Frequenza","RitMax","IncrRitMax","Presenze","I.C.","1°Esito","2°Esito","3°Esito")
'aV = Array("","Formazione","Ritardo","Frequenza","RitMax","IncrRitMax","Presenze","I.C.","Clp1°Esito","Clp2°Esito")
Call InitTabella(aV,2,,3,5)
For id = 1 To nElemFrz
ReDim aNumInGioco(0)
Call GetNumInGiocoFromElemFrz(id,aElemFormazione,aNumInGioco,nClasseFrz)
aV(1) = StringaNumeri(aNumInGioco)
aV(2) = aValStat(id,0)'Ritardo
aV(3) = aValStat(id,1)'Freq.
aV(4) = aValStat(id,2)'RitardoMax
aV(5) = aValStat(id,3)'IncrRitMax
aV(6) = aValStat(id,4)'Presenze
nFrqMedia = Dividi(nEstrTot,aValStat(id,4))
aV(7) = Round(Dividi(aValStat(id,0),nFrqMedia),3) ' indice di convenienza ??????
If VerificaEsitoDL(aNumInGioco,idEstr,Sorte,EstrazioniArchivioDL - Fine,,RetColpi,RetEstratti) Then
aV(8) = RetColpi & "° -- " & RetEstratti
Else
aV(8) = "-" '0
End If
If VerificaEsitoDL(aNumInGioco,idEstr + RetColpi,Sorte,EstrazioniArchivioDL - Fine - RetColpi,,RetColpi2) Then
aV(9) = " + " & RetColpi2
Else
aV(9) = " - "
End If
If VerificaEsitoDL(aNumInGioco,idEstr + RetColpi + RetColpi2,Sorte,EstrazioniArchivioDL - Fine - RetColpi - RetColpi2,,RetColpi3) Then
aV(10) = " + " & RetColpi3
Else
aV(10) = " - "
End If
Call AddRigaTabella(aV)
Next
If arc = 1 Then
Call Scrivi("Statistica del 10eLotto Normale per " & NomeSorte(Sorte) & " by Mike58 modificato da Claudio8",1,0,2,4,2)
Else
Call Scrivi("Statistica del 10eLotto 5 Minuti per " & NomeSorte(Sorte) & " by Mike58 modificato da Claudio8",1,0,2,4,2)
End If
Dim sTitolo
sTitolo = "Statistica_per_" & NomeSorte(Sorte) & "_AnalisiFormazione_" & sNomeFrz & "_da_" & Inizio & "_a_" & Fine & "_Tot_estraz_" & nEstrTot
Call SetTableTitle(sTitolo,"Arial",10,False,2)
Call SetTableHeight("100%") ' altezza
Call SetTableWidth("100%") '' larghezza
Call CreaTabellaOrdinabile(2,,,,,False) ' ordinamento 2a colonna
Else
Scrivi " Errore nella Selezione Formazioni dei Prametri .",1,,2,4,4
End If
End Sub
Sub GetNumInGiocoFromElemFrz(id,aElemFormazione,aNumInGioco,nClasseFrz)
Dim k
ReDim aNumInGioco(nClasseFrz)
For k = 1 To nClasseFrz
aNumInGioco(k) = aElemFormazione(id,k)
Next
End Sub
Sub RichiediFormazione(aElemFormazione,nClasseFrz,sNome)
Dim s
Dim n
Dim id
ReDim aNomiForm(0)
Call ElencoFileInDirectory(GetDirectoryAppData & "formazioni\",aNomiForm,".frz")
id = ScegliOpzioneMenu(aNomiForm,1,"Selezione formazione")
If GetElementiFormazione(aNomiForm(id),aElemFormazione) Then
nClasseFrz = GetClasseFormazione(aNomiForm(id))
sNome = aNomiForm(id)
End If
End Sub