Novità

Dinamicizzare... una function... è possibile? Se si come?

lotto_tom75

Advanced Premium Member
In passato forse ho già fatto questa domanda. E molto probabilmente mi rispose già il grande LuigiB. Purtroppo anche allora non riuscii a capire cosa intendesse e lasciai perdere e adesso non riesco a ritrovare nemmeno il relativo thread quindi provo a rifarla...

Nella speranza di riuscire ad "accorciare notevolmente" un mio code di oltre 4000 righe pesantissimo e piuttosto ingestibile dal punto di vista di editing chiedo agli esperti in ascolto:

Data una sub o function di questo tipo:

Codice:
Sub AnalisiLunghette55 (Inizio,Fine,aRuote55,Sorte,idFiltro,qIncr,bPrimaEstrFissa,nDistanza,nclasse,alunghette55)

E' possibile dinamicizzarla... con for e un numero dinamico al posto del 55 fisso in modo da poter avere una sola sub "dinamica" anziche 55 sub o function fisse con numero progressivo?

Del tipo

Sub AnalisiLunghetteNUMEROPROGRESSIVO
(Inizio,Fine,aRuoteNUMEROPROGRESSVO,Sorte,idFiltro,qIncr,bPrimaEstrFissa,nDistanza,nclasse,alunghetteNUMEROPROGRESSIVO)

Resto disponibile ovviamente per eventuali chiarimenti 👋:)
 
Ultima modifica:
Tom potresti fare l esempio di una function? Oltre gli estratti e la ruota cosa cambia da funzione a funzione?

Certo legend, come ho scritto sopra per ogni funzione cambia solo il numero progressivo che riporto qui sotto per esempio:


Sub AnalisiLunghetteNUMEROPROGRESSIVO
(Inizio,Fine,aRuoteNUMEROPROGRESSIVO,Sorte,idFiltro,qIncr,bPrimaEstrFissa,nDistanza,nclasse,alunghetteNUMEROPROGRESSIVO)

quindi mi chiedevo se fosse possibile richiamare dinamicamente ENNE VOLTE (nel mio caso 55 volte...) con un FOR una funzione dinamica che cambiasse solo quel parametro...

del tipo

Codice:
for NUMEROPROGRESSIVO=1 to 55

call AnalisiLunghetteNUMEROPROGRESSIVO (Inizio,Fine,aRuoteNUMEROPROGRESSIVO,Sorte,idFiltro,qIncr,bPrimaEstrFissa,nDistanza,nclasse,alunghetteNUMEROPROGRESSIVO)

next

Ho provato a farlo ma non so come "legare" il parametro dinamico NUMEROPROGRESSIVO alle tre parti interessate della function... :unsure:

Ossia a:

AnalisiLunghetteNUMEROPROGRESSIVO

aRuoteNUMEROPROGRESSIVO

alunghetteNUMEROPROGRESSIVO
 
Ultima modifica:
Tom che differenza intercorre tra la funzione 1 e la funzione 55? A parte il numero nel titolo

Come ho scritto sopra sono function perfettamente identiche tranne il NUMEROPROGRESSIVO...

il numero progressivo serve ad identificare:

lo stesso gruppo numero di base da analizzare
il gruppo di 2 ruote unite ogni volta diversi
la funzione dinamica relativa
 
Allora un ciclo dovrebbe risolvere il problema . Alunghetta 1 e alunghletta 2 come li ricavi?

Mi faresti l'esempio della legatura del NUMEROPROGRESSIVO alle tre componenti sopra indicate nel rispettivo ciclo for? Grazie

Alunghetta1, ecc... alunghetta2 le ricavo da sceglinumeri (in sostanza nel modo che ho descritto nella precedente domanda). alunghetta1, alunghetta2 ecc.. sono identiche cioè composte dagli stessi elementi base scelti da tabella colorata iniziale...
 
Ultima modifica:
ciao
tom non so come aggisca la tua sub
io ne ho fatta una con un filtro di esempio
ecco la struttura controlla che funzioni
basta inserisre la tua funzione nella linea dove c'è la mia
dimmi se era questo che volevi
Codice:
Option Explicit
' controllare che lo script funzioni correttamente
' questo è solo un esempio
' non selezionare piu di 10 numeri
Sub Main
   ReDim aNum(0)
   Dim aR(2)
   Dim R1,R2
   Dim Ini,Fin,nSorte,nClasse,idFiltro
   Dim id,maxCalc,col
   Ini = EstrazioneIni
   Fin = EstrazioneFin
   nClasse = 3
   nSorte = 2
   idFiltro = 100
   Call ScegliNumeri(aNum)
   If UBound(aNum) > 10 Then Exit Sub
   If UBound(aNum) < nClasse Then Exit Sub
   col = InitSviluppoIntegrale(aNum,nClasse)
   maxCalc = col*55
   id = 0
   Do While GetCombSviluppo(aNum)
      For R1 = 1 To 10
         aR(1) = R1
         For R2 = R1 + 1 To 11
            If R2 = 11 Then R2 = 12
            id = id + 1
            aR(2) = R2
            Call GetAnalisi(Ini,Fin,aNum,aR,nSorte,idFiltro)
            Call AvanzamentoElab(1,maxCalc,id)
         Next
      Next
      If ScriptInterrotto Then Exit Do
   Loop
End Sub
Sub GetAnalisi(Ini,Fin,aNum,aR,nsorte,idFiltro)
   Dim Rit,RitMax,Incr,Freq
   Call StatisticaFormazioneTurbo(aNum,aR,nsorte,Rit,RitMax,Incr,Freq,Ini,Fin)
   If(Rit - RitMax) >= idFiltro Then
      Scrivi StringaRuote(aR) & "   " & StringaNumeri(aNum,,True) & " ( R.C=" & FormatSpace(Rit,4,1) & "  -  R.Max" & FormatSpace(RitMax,4,1) & ") =" & Rit - RitMax & "   Freq=" & Freq
   End If
End Sub
 
ciao
tom non so come aggisca la tua sub
io ne ho fatta una con un filtro di esempio
ecco la struttura controlla che funzioni
basta inserisre la tua funzione nella linea dove c'è la mia
dimmi se era questo che volevi
Codice:
Option Explicit
' controllare che lo script funzioni correttamente
' questo è solo un esempio
' non selezionare piu di 10 numeri
Sub Main
   ReDim aNum(0)
   Dim aR(2)
   Dim R1,R2
   Dim Ini,Fin,nSorte,nClasse,idFiltro
   Dim id,maxCalc,col
   Ini = EstrazioneIni
   Fin = EstrazioneFin
   nClasse = 3
   nSorte = 2
   idFiltro = 100
   Call ScegliNumeri(aNum)
   If UBound(aNum) > 10 Then Exit Sub
   If UBound(aNum) < nClasse Then Exit Sub
   col = InitSviluppoIntegrale(aNum,nClasse)
   maxCalc = col*55
   id = 0
   Do While GetCombSviluppo(aNum)
      For R1 = 1 To 10
         aR(1) = R1
         For R2 = R1 + 1 To 11
            If R2 = 11 Then R2 = 12
            id = id + 1
            aR(2) = R2
            Call GetAnalisi(Ini,Fin,aNum,aR,nSorte,idFiltro)
            Call AvanzamentoElab(1,maxCalc,id)
         Next
      Next
      If ScriptInterrotto Then Exit Do
   Loop
End Sub
Sub GetAnalisi(Ini,Fin,aNum,aR,nsorte,idFiltro)
   Dim Rit,RitMax,Incr,Freq
   Call StatisticaFormazioneTurbo(aNum,aR,nsorte,Rit,RitMax,Incr,Freq,Ini,Fin)
   If(Rit - RitMax) >= idFiltro Then
      Scrivi StringaRuote(aR) & "   " & StringaNumeri(aNum,,True) & " ( R.C=" & FormatSpace(Rit,4,1) & "  -  R.Max" & FormatSpace(RitMax,4,1) & ") =" & Rit - RitMax & "   Freq=" & Freq
   End If
End Sub
mi raccomando non selezionare piu di 10 numeri altrimenti diventa lenta la gestione della lunghetta
ciao
 
ciao
tom non so come aggisca la tua sub
io ne ho fatta una con un filtro di esempio
ecco la struttura controlla che funzioni
basta inserisre la tua funzione nella linea dove c'è la mia
dimmi se era questo che volevi
Codice:
Option Explicit
' controllare che lo script funzioni correttamente
' questo è solo un esempio
' non selezionare piu di 10 numeri
Sub Main
   ReDim aNum(0)
   Dim aR(2)
   Dim R1,R2
   Dim Ini,Fin,nSorte,nClasse,idFiltro
   Dim id,maxCalc,col
   Ini = EstrazioneIni
   Fin = EstrazioneFin
   nClasse = 3
   nSorte = 2
   idFiltro = 100
   Call ScegliNumeri(aNum)
   If UBound(aNum) > 10 Then Exit Sub
   If UBound(aNum) < nClasse Then Exit Sub
   col = InitSviluppoIntegrale(aNum,nClasse)
   maxCalc = col*55
   id = 0
   Do While GetCombSviluppo(aNum)
      For R1 = 1 To 10
         aR(1) = R1
         For R2 = R1 + 1 To 11
            If R2 = 11 Then R2 = 12
            id = id + 1
            aR(2) = R2
            Call GetAnalisi(Ini,Fin,aNum,aR,nSorte,idFiltro)
            Call AvanzamentoElab(1,maxCalc,id)
         Next
      Next
      If ScriptInterrotto Then Exit Do
   Loop
End Sub
Sub GetAnalisi(Ini,Fin,aNum,aR,nsorte,idFiltro)
   Dim Rit,RitMax,Incr,Freq
   Call StatisticaFormazioneTurbo(aNum,aR,nsorte,Rit,RitMax,Incr,Freq,Ini,Fin)
   If(Rit - RitMax) >= idFiltro Then
      Scrivi StringaRuote(aR) & "   " & StringaNumeri(aNum,,True) & " ( R.C=" & FormatSpace(Rit,4,1) & "  -  R.Max" & FormatSpace(RitMax,4,1) & ") =" & Rit - RitMax & "   Freq=" & Freq
   End If
End Sub

Ok grazie i legend, domani la provo e ti faccio sapere se è l'esempio di dinamismo che mi serve o meno. Ciao
 
Dunque carissimo i legend ho provato il tuo ultimo code di esempio ma sia con 8 numeri che con 10 mi da sempre output bianco... Inoltre purtroppo non riesco a capire come implementarvi il NUMEROPROGRESSIVO per richiamare le relative funzioni dinamiche "clone". Grazie se puoi dettagliarmi al riguardo 👋 :) ps: al 1° colpo nel dolcetto uscito 8-82 sulla ladra di pronostici... NZ purtroppo non contemplata... 😕
 

Ultima estrazione Lotto

  • Estrazione del lotto
    venerdì 18 luglio 2025
    Bari
    48
    38
    01
    78
    24
    Cagliari
    87
    33
    22
    13
    19
    Firenze
    14
    27
    71
    11
    50
    Genova
    40
    14
    77
    76
    17
    Milano
    26
    17
    90
    64
    69
    Napoli
    40
    89
    06
    23
    84
    Palermo
    62
    51
    36
    86
    26
    Roma
    76
    33
    75
    83
    47
    Torino
    83
    19
    82
    79
    89
    Venezia
    20
    31
    13
    12
    87
    Nazionale
    74
    29
    28
    32
    78
    Estrazione Simbolotto
    Nazionale
    39
    18
    27
    28
    20
Indietro
Alto