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
    giovedì 17 luglio 2025
    Bari
    22
    33
    04
    68
    47
    Cagliari
    09
    52
    27
    21
    47
    Firenze
    05
    33
    72
    17
    08
    Genova
    76
    67
    65
    68
    45
    Milano
    75
    52
    46
    34
    22
    Napoli
    40
    23
    71
    12
    22
    Palermo
    44
    89
    39
    01
    31
    Roma
    89
    04
    05
    82
    26
    Torino
    05
    59
    85
    88
    24
    Venezia
    69
    45
    75
    44
    30
    Nazionale
    28
    85
    16
    03
    83
    Estrazione Simbolotto
    Nazionale
    39
    26
    40
    23
    24
Indietro
Alto