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ì 31 luglio 2025
    Bari
    42
    35
    89
    51
    34
    Cagliari
    54
    34
    02
    77
    57
    Firenze
    73
    01
    07
    15
    04
    Genova
    71
    28
    17
    03
    67
    Milano
    72
    37
    26
    09
    63
    Napoli
    04
    46
    83
    68
    31
    Palermo
    62
    18
    36
    34
    52
    Roma
    37
    44
    49
    67
    32
    Torino
    51
    17
    56
    48
    41
    Venezia
    36
    04
    85
    81
    41
    Nazionale
    08
    52
    01
    24
    05
    Estrazione Simbolotto
    Nazionale
    21
    19
    01
    17
    43
Indietro
Alto