Novità

Come conservare un vettore per n call ?

lotto_tom75

Advanced Premium Member
Cerco di spiegarmi meglio...

Ho un semplice...

Codice:
   ScegliNumeri(aLunghette)

che mi permette di inserire il gruppo numerico di base desiderato

E una serie di call come questa:

Codice:
Call AnalisiLunghetteFromSceglinumeri1(Inizio,Fine,aruote1,Sorte,idFiltro,qIncr,bPrimaEstrFissa,nDistanza,nclasse,aLunghette)

che lo richiamano...

Per cercare di conservarne in memoria il contenuto ho provato ad inizializzare la raccolta degli elementi con:

Codice:
ReDim Preserve aLunghette(0)

Ma purtroppo anche così già alla seconda call il gruppo numerico non viene mantenuto e quindi ottengo l'errore bloccante relativo alla mancanza di elementi da analizzare...

Then... the question is:

Come posso mantenere in memoria il gruppo numerico di base raccolto tramite la tabella colorata in modo da poterlo riutilizzare e richiamare tutte le volte che mi necessita?

Grazie

👋👨‍🍳 :)
 
Ultima modifica:
Alunghette viene sviluppata in nclasse, quindi non può restare restare fissa
.
La soluzione più semplice e più brutta ,ma come sempre non conoscendo il problema , trovarne una ottimizzata la vedo dura, è clonare alunghette n volte per ogni richiamo
Esempio
Redim aLunghette1(ubound (alunghette))
Redim aLunghette2(ubound (alunghette))
Redim aLunghette3(ubound (alunghette))
For i=1 to ubound ( alunghette)
aLunghette1(i)=aLunghette (i)
aLunghette2(i)=aLunghette (i)
aLunghette3(i)=aLunghette (i)
Next
Hai tre aLunghette per tre tre chiamate.
Oppure
Fai tre stringhe e quando ti serve utilizzi split.
Altro alla cieca non saprei cosa suggerirti
Ciao :)
 
La ricetta al Pasticcere
ingredienti base:

Variabili VBScript
Una variabile è un segnaposto che fa riferimento a una posizione della memoria del computer e in cui è possibile memorizzare informazioni di programma soggette a modifiche durante l'esecuzione degli script. È possibile, ad esempio, creare la variabile ClickCount per memorizzare quante volte l'utente fa clic su un oggetto di una pagina Web specifica. La posizione delle variabili in memoria non è importante. Per visualizzarne o modificarne il valore, è sufficiente farvi riferimento in base al nome. In VBScript, le variabili sono sempre di tipo Variant.

Dichiarazione di variabili​

Le variabili vengono dichiarate in modo esplicito nello script utilizzando le istruzioni Dim, Public e Private. Ad esempio:
Dim DegreesFahrenheit
Per dichiarare più variabili, è necessario separare i vari nomi con una virgola. Ad esempio:
Dim Top, Bottom, Left, Right
È inoltre possibile dichiarare le variabili in modo implicito specificandone semplicemente il nome in un punto qualsiasi dello script. È tuttavia consigliabile non adottare questo metodo, in quanto è possibile inserire errori di ortografia nel nome della variabile in una o più posizioni dello script e ottenere di conseguenza risultati imprevisti. È possibile utilizzare l'istruzione Option Explicit per richiedere la dichiarazione esplicita di tutte le variabili. Tale istruzione deve essere la prima dello script.

Restrizioni relative ai nomi​

I nomi delle variabili seguono gli stessi standard di denominazione validi in VBScript. Il nome di una variabile:
  • Deve iniziare con una lettera dell'alfabeto.
  • Non può includere punti.
  • Non deve essere composto da più di 255 caratteri.
  • Deve essere univoco nell'area di validità in cui la variabile è dichiarata.

Area di validità e vita utile delle variabili​

L'area di validità di una variabile varia a seconda della posizione in cui la variabile viene dichiarata. Quando si dichiara una variabile in una routine, è possibile accedere o modificare il corrispondente valore solo tramite il codice di tale routine. Si tratta infatti di una variabile a livello di routine con area di validità locale. Se una variabile viene dichiarata all'esterno di una routine, essa sarà riconosciuta in tutte le altre routine dello script. A questo tipo di variabile, definita a livello di script, è associata un'area di validità a livello di script.
La vita utile di una variabile corrisponde alla sua durata. Per una variabile a livello di script la vita utile è compresa tra la dichiarazione e la conclusione dell'esecuzione dello script. A livello di routine, le variabili esistono solo mentre è in esecuzione la routine in cui sono dichiarate. Al termine dell'esecuzione della routine la variabile viene eliminata. Le variabili locali rappresentano uno spazio di memorizzazione ideale quando si esegue una routine. In più routine è possibile includere variabili locali aventi lo stesso nome in quanto ciascuna di esse viene riconosciuta solo dalla routine in cui è dichiarata.

Assegnazione di valori alle variabili​

Per assegnare valori alle variabili, è necessario creare un'espressione indicando a sinistra la variabile e a destra il valore che si desidera assegnare. Ad esempio:
B = 200

Variabili scalari e variabili matrice​

Nella maggior parte dei casi alle variabili dichiarate viene assegnato un solo valore. Una variabile contenente un solo valore è definita variabile scalare. A volte tuttavia risulta utile assegnare a una singola variabile più valori correlati. Una variabile contenente una serie di valori è definita variabile matrice. La dichiarazione di queste variabili è simile a quella delle variabili scalari, con la sola differenza che, nelle dichiarazioni di variabili matrici, il nome della variabile è seguito da parentesi. Nell'esempio seguente, viene dichiarata una matrice a una sola dimensione contenente 11 elementi:
Dim A(10)
Anche se tra parentesi è indicato il numero 10, la matrice include in effetti 11 elementi. In VBScript infatti le matrici sono sempre in base zero e di conseguenza il numero degli elementi in esse contenuti corrisponde sempre al numero indicato tra parentesi più uno. Queste matrici sono definite a dimensione fissa.
Per assegnare dati a ciascun elemento di una matrice, è necessario utilizzare un indice. Nell'esempio seguente vengono assegnati i dati da 0 a 10 ai vari elementi della matrice:
A(0) = 256
A(1) = 324
A(2) = 100
. . .
A(10) = 55
Per recuperare dati da un elemento della matrice, è possibile procedere nello stesso modo, ovvero inserire un indice nell'elemento desiderato. Ad esempio:
. . .
SomeVariable = A(8)
. . .
Le matrici non sono limitate a una sola dimensione. È infatti possibile specificare fino a 60 dimensioni, anche se nella maggior parte dei casi ne vengono specificate solo tre o quattro. Per dichiarare dimensioni multiple, è necessario separare con una virgola i valori delle dimensioni indicati tra parentesi. Nell'esempio seguente la variabile MyTable è una matrice a due dimensioni composta da 6 righe e 11 colonne:
Dim MyTable(5, 10)
In una matrice a due dimensioni il primo numero corrisponde sempre al numero di righe, il secondo al numero di colonne.
È inoltre possibile dichiarare matrici le cui dimensioni vengono modificate durante l'esecuzione dello script. Questo tipo di matrici sono definite matrici dinamiche e vengono inizialmente dichiarate in una routine utilizzando l'istruzione Dim come qualsiasi altra matrice, oppure l'istruzione ReDim. La differenza è che tra parentesi non viene indicata alcuna grandezza o numero di dimensioni. Ad esempio:
Dim MyArray()
ReDim AnotherArray()
Per utilizzare una matrice dinamica, è necessario specificare più istruzioni ReDim in modo da determinare il numero di dimensioni e la grandezza di ciascuna dimensione. Nell'esempio seguente l'istruzione ReDim imposta la grandezza iniziale della matrice dinamica su 25. Una successiva istruzione ReDim ridimensiona quindi la matrice impostandola su 30 e viene utilizzata la parola chiave Preserve per mantenere il contenuto della matrice durante l'operazione di ridimensionamento.
ReDim MyArray(25)
. . .
ReDim Preserve MyArray(30)
Non esiste alcun limite alla frequenza delle operazioni di ridimensionamento delle matrici dinamiche. È tuttavia importante ricordare che quando si riducono le dimensioni di una matrice, i dati contenuti negli elementi eliminati vanno perduti.

alla fine mescolare ed infornare
vedrai che il pasticcino sarà ottimo :cool: :cool: :cool: :cool:
 
Grazie mille ragazzi 🙏. Sia per la soluzione (già provata con successo) di Ilegend (molto meglio della mia precedente pasticciosa implementazione dello scegli numeri x 55 volte... 😱:ROFLMAO: ) (y) :D sia per l'utilissimo refresh high tech culturale e culinario del simpaticissimo claudio8 👨‍🏫👨‍🍳🤓😎

Un salutone a entrambi 👋🙂

Ps: restate sintonizzati.. presto ci potrebbero essere gustosi dolcetti for all anche se Halloween è già passato... 😄
 
Ultima modifica:
ciao tom questa potrebbe essere un alternativa ma comporta sempre una modifica dello script
controlla che funzioni
Codice:
Option Explicit
'  controllare che lo script funzioni correttamente
Sub Main
   Dim aLunghetta,nSorte,nClasse
   Dim Ini,Fin
   ReDim aR(0)
   ReDim aNum(0)
   nClasse = 2
   nSorte = 2
   Ini = EstrazioneIni
   Fin = EstrazioneFin
   Call ScegliNumeri(aNum)
   If UBound(aNum) < nSorte Then Exit Sub
   Call ScegliRuote(aR)
   Call GetRit(aNum,Ini,Fin,aLunghetta,aR,nClasse,nSorte)
   Scrivi
   Call GetFreq(aNum,Ini,Fin,aLunghetta,aR,nClasse,nSorte)
End Sub
Sub ClonaArray(aNum,aLunghetta)
   ReDim aLunghetta(UBound(aNum))
   Dim n
   For n = 1 To UBound(aNum)
      aLunghetta(n) = aNum(n)
   Next
End Sub
Sub GetRit(aNUm,Ini,Fin,aLunghetta,aR,nClasse,nSorte)
   ' qui inserisco
   Call ClonaArray(aNUm,aLunghetta)
   Call InitSviluppoIntegrale(aLunghetta,nClasse)
   Do While GetCombSviluppo(aLunghetta)
      Scrivi StringaNumeri(aLunghetta,,True) & " --> " & SerieRitardoTurbo(Ini,Fin,aLunghetta,aR,nSorte)
   Loop
End Sub
Sub GetFreq(aNUm,Ini,Fin,aLunghetta,aR,nClasse,nSorte)
   Call ClonaArray(aNUm,aLunghetta)
   Call InitSviluppoIntegrale(aLunghetta,nClasse)
   Do While GetCombSviluppo(aLunghetta)
      Scrivi StringaNumeri(aLunghetta,,True) & " --> " & SerieFreqTurbo(Ini,Fin,aLunghetta,aR,nSorte)
   Loop
End Sub
 
tom una domanda
per fare uno script prepari uno schema?
se nfai un collage poi ti ritrovi a trovare soluzioni che inevitabilmente porteanno degli errori, almeno questa è solo la mia modestissima opinione
ciao :)
 
tom una domanda
per fare uno script prepari uno schema?
se nfai un collage poi ti ritrovi a trovare soluzioni che inevitabilmente porteanno degli errori, almeno questa è solo la mia modestissima opinione
ciao :)

No legend, il pasticcere opera esclusivamente without scheme :LOL:

Grazie anche per lo script "clona vettori" 🙏👌👍😉

ps: dolcetto1: 8.42.77.81.82 TOVE. crt 1 shhhhh 🤐😬🤞🤞

Nessuna Certezza (Purtroppo...) Solo Poca Probabilità

ps2: tra poco faccio un'altra domanda tecnica cui mi aveva già risposto luigi ma che non riesco a ritrovare e che comunque quando mi rispose io non capii molto e lasciai quindi perdere... Grazie se puoi darmi un tuo prezioso parere anche su quella! 🤪😜
 
Ultima modifica:

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