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
    sabato 11 gennaio 2025
    Bari
    73
    43
    01
    58
    81
    Cagliari
    69
    60
    18
    02
    10
    Firenze
    25
    32
    18
    55
    54
    Genova
    48
    05
    40
    34
    69
    Milano
    10
    07
    70
    44
    79
    Napoli
    11
    89
    01
    34
    80
    Palermo
    37
    80
    82
    44
    77
    Roma
    78
    04
    38
    39
    56
    Torino
    08
    13
    30
    27
    24
    Venezia
    56
    75
    36
    18
    70
    Nazionale
    63
    83
    19
    31
    80
    Estrazione Simbolotto
    Bari
    35
    34
    12
    23
    20
Indietro
Alto