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ì 18 dicembre 2025
    Bari
    72
    48
    90
    14
    52
    Cagliari
    11
    78
    87
    47
    53
    Firenze
    50
    08
    32
    71
    74
    Genova
    20
    18
    09
    76
    07
    Milano
    13
    34
    68
    07
    16
    Napoli
    75
    61
    50
    16
    10
    Palermo
    32
    44
    38
    16
    70
    Roma
    13
    67
    32
    44
    69
    Torino
    45
    64
    49
    37
    63
    Venezia
    81
    19
    30
    79
    36
    Nazionale
    21
    85
    89
    35
    77
    Estrazione Simbolotto
    Venezia
    38
    12
    34
    27
    24

Ultimi Messaggi

Indietro
Alto