Novità

per LuigiB

  • Creatore Discussione Creatore Discussione Beppignello
  • Data di inizio Data di inizio
il fatto che la somma totale degli ambi non faceva 4005 dipendeva dal fatto che come avevo spiegato nella tabella finale venivano mostrati solo i gruppi che nel periodo analizzato avessero avuto almeno una sortita..volendo si poteva remmare l'if avevo scritto.
Silop se ci tieni cambia questa funzione con quella postata qui ,non che quella che c'era fosse sbagliata ma in questa qui ho levato l'if che esclude la visualizzazionew in tabella dei gruppi con 0 uscite e in piu in questa qui fa la somma degli ambi totali e ti da uan msgbox
Per le differenze mostrate da Bep non ho capito .. prima diceva che combaciava , poi non combaciava piu non saprei .. se c'è lo script di Bep per me va bene quello ...

Codice:
Sub CreaTabGruppi(aGruppi,aAmbi)

    Dim k
    Dim nTot

    ReDim aV(7)
    aV(1) = "  GruppoFrq  "
    aV(2) = "  Ritardo  "
    aV(3) = "  RitardoMax  "
    aV(4) = "  RitardoMin  "
    aV(5) = "  Frequenza  "
    aV(6) = "  Quantita  "
    aV(7) = "  Ambi  "
    Call InitTabella(aV)

    For k = 0 To UBound(aGruppi)
        'If aGruppi(k,cFrq) > 0 Then
            aV(1) = k
            aV(2) = aGruppi(k,cRit)
            aV(3) = aGruppi(k,cRitMax)
            aV(4) = aGruppi(k,cRitMin)
            aV(5) = aGruppi(k,cFrq)
            aV(7) = GetAmbiDellaFrq(k,aAmbi,aV(6))

            Call AddRigaTabella(aV)

            nTot = nTot + aV(6)
        'End If
    Next
    MsgBox nTot

    Call CreaTabella

End Sub
 
ciao

si avevo confermato che andava bene, in quanto avevo controllato velocemente le frequenze e a campione la quantità degli ambi nei gruppi,
in effetti 4002 c'erano, ne mancavano solo 3.

quando ho trovato qualche anomalia, era mezzanotte quasi, ed oggi ho controllato dove
c'erano le divergenze.
ma nessun problema.
ora mi metto a controllare il ritardo di frequenza ed eventualmente il ritardo massimo, che non ho ancora effettuato.
 
allora se riscontri diferenze sui ritardi una delle due routine è errata oppure non fanno esattamente la stessa cosa e percio danno risultati diversi
Le differenze sulle frequenze potrebbero dpendere dal fatto che la mia routine incrementa la frequenza ad ogni ambo uscito del grupppo , se in quell'estrazione fossero usciti due ambi dello stesso gruppo la frquenza del gruppo prenderebbe un +2
non combaciando i ritardi anche i valori dei rit min e max dovrebbero essere diversi ..
queste soo tutte le ipotesi che mi vengono in mente.
 
chiedo parere:

mentre per il ritardo di frequenza, mi sembra che possa essere calcolato correttamente, in quanto basta sommare 1 alla frequenza
quando l'ambo non esce, ed azzerare quando esce un ambo in quello gruppo di frequenza

diverso è invece il ritardo massimo storico della frequenza.

perché calcolandolo anche per tutte le estrazioni in archivio, in verità ci si trova d'innanzi al seguente problema:

1) all'uscita di ogni ambo dell'estraz.in archivio, soprattutto nelle prime migliaia di estrazioni, gli ambi usciti sono sempre stati pochi
rispetto ai 4005 integrali, quindi il ritardo massimo di frequenza tende ad accumularsi a livelli molto alti, perché la frequenza parte
comunque da 0,1,etc...
2) per avere dei gruppi abbastanza consistenti di ambi e distribuiti su più frequenze, ci sono voluti molte estrazioni.

pertanto il ritardo massimo storico, risulta con valori alti che, oggi, difficilmente lo si trova nella distruzione attuale dei 4005.

sbaglio qualcosa con queste affermazioni ed osservazioni?


forse sarebbe più significativo il valore teorico di ambi presenti in una frequenza, per avere un dato tendente ad indicare una eventuale rottura a breve?


tempo di elaborazione per fare questo prospetto ed altro più complesso 50 secondi circa.


[IMG2=JSON]{"data-align":"none","data-size":"full","src":"http:\/\/funkyimg.com\/i\/2nRo8.jpg"}[/IMG2]
 
[TABLE="border: 0, cellpadding: 0, cellspacing: 0"]
[TR]
[TD="width: 833"]
LOGOSILOP.gif
[/TD]
[/TR]
[TR]
[TD]SPMT vers. 1.5.87 e relativo plugin SVP vers. 1.0.56 e Plugin_FTP vers. 1.0[/TD]
[/TR]
[TR]
[TD]====================== [/TD]
[/TR]
[TR]
[TD]Ciao Luigi ,[/TD]
[/TR]
[TR]
[TD]grazie ho fatto la modifica e va tutto bene.[/TD]
[/TR]
[TR]
[TD]Ho analizzato tutte le 10 ruote dalla 3950 e la NZ dalla 7440 fino alla sera del 21/01/2017 file 9268[/TD]
[/TR]
[TR]
[TD]tutti i 4005 ambi sono sortiti almeno una volta in tutte le 11 ruote.[/TD]
[/TR]
[TR]
[TD]
stickman.gif
[/TD]
[/TR]
[TR]
[TD]Se possibile potresti colorare gli ultimi 10 ambi usciti di colore rosso nella colonna "Ambi" ?[/TD]
[/TR]
[TR]
[TD]In modo che quando metto a confronto lo sviluppo di una estrazione con quella successiva[/TD]
[/TR]
[TR]
[TD]posso individuare subito visivamente il "passaggio"da un quadro/frequenza al successivo quadro/frequenza.[/TD]
[/TR]
[TR]
[TD]Ti ringrazio anticipatamente.[/TD]
[/TR]
[TR]
[TD]
stickman.gif
[/TD]
[/TR]
[TR]
[TD]Buona notte a tutti.[/TD]
[/TR]
[TR]
[TD]A presto [/TD]
[/TR]
[TR]
[TD]Silop ;) ;) ;)[/TD]
[/TR]
[/TABLE]
 
ciao Silop , vedro stasera se mi riesce meglio colorare gli ambi usciti oppure esporre un tabulato che mostra ad ogni estrazione i 10 ambi usciti da quale gruppo vengono e in quale gruppo vanno a finire.

Invece sul discorso fatto da Bep penso sia giusto.
I ritardi massimi piu alti sono quelli alle frequenze piu alte inquanto prima che un ambo assuma un 'alta frequenza devono passare un bel mucchio di estrazioni contemporaneamente sono pochi gli ambi che arrivano insieme a frequenze elevate sicche è evidente che essendo pochi gli ambi contenuti nel gruppo di quella frequenza è normale che tardino a sfaldarsi.
Non so se sia giusto incrementare il ritardo di frequenza ad ogni estrazione, se un gruppo di frequenza non conteneva ambi teoricamente non sarebbe giusto incrementargli il ritardo .. non so ...
Altra considerazione è che le frequenze piu basse al contrario non vedranno piu uscire un solo ambo ...in quanto ormai tutti gli ambi hannoi superato la frquenza 0 oppure 1 ad esempio ...
 
Scusate l'intromissione, sto cercando di adattare lo script di Luigi ad una lotteria estera,analogamente a quanto già fatto con altri script.
ma mentre in quasi tutti gli script che ho adattato in questo non riesco...tutto parte con l'adattamento di queste linee di codice
Codice:
 Dim sez '°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°
Dim sfilearchivio '°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°
sez = InputBox("Quale Arc Virtuale vuoi prendere in considerazione? "," 1 - 6 ",1)
sfilearchivio = GetDirectoryAppData & "SWTZ\svizz" & sez & ".txt" 
         'fine = EstrazioniArchivioFT
si tratta che invece di scegliere fa le dieci ruote canoniche scelgo fra 7 ruote (quindi fra 7 archivi di cui uno originale gli alitri sei ricavati col sistema che da tempo adotto simile a quello spiegato nel post di luigi "uno script).Ora mentre in quasi tutte le altre occasioni riesco nell'intento in questo script non riesco perchè al esempio questa riga di codice non ha corrispondenza con il suffisso FT
Codice:
 Call GetArrayNumeriRuota(idEstr,nRuota,aNumRuota)
. Inoltre qui
Codice:
Do While GetCombSviluppo(aCol) i = i + 1 aAmbi(i,0) = aCol(1) ' memorizzo l'ambo (primo num) aAmbi(i,1) = aCol(2) ' Secondo num aAmbi(i,2) = SerieFreqFT(PrimaEstrValida,PrimaEstranalisi,aCol,2)
mi da errore "indice non inclusi nell'intervallo "ì" .So che siete impicciati ma ci provo..forse a tempo perso...;)
 
ciao Fil ,

GetArrayNumeriRuota non mi ricordo se ha un corrispettivo FT magari con altro nome ad ogni modo basta riscrivere una funzioen che adottando gli stessi parametr ilegga l'estrazione idEstr nel tuo archivio e ritorni i numeri estratti nel vettore aNumRuota. Non riuscendo ad estrarre i numeri della ruota non li puo sviluppare in ambi e ti da errore dopo ..
 
[TABLE="border: 0, cellpadding: 0, cellspacing: 0"]
[TR]
[TD="width: 833"]
LOGOSILOP.gif
[/TD]
[/TR]
[TR]
[TD]SPMT vers. 1.5.87 e relativo plugin SVP vers. 1.0.56 e Plugin_FTP vers. 1.0[/TD]
[/TR]
[TR]
[TD]====================== [/TD]
[/TR]
[TR]
[TD]Ciao Luigi ,[/TD]
[/TR]
[TR]
[TD]ok, forse un tabulato che indichi i dieci ambi ultimi sortiti dove erano e dove passeranno[/TD]
[/TR]
[TR]
[TD]è la cosa migliore, grazie.[/TD]
[/TR]
[TR]
[TD]====================== [/TD]
[/TR]
[TR]
[TD]Poi volevo precisare che per la ruota Nazionale, nelle sue poche estrazioni fatte 1829,[/TD]
[/TR]
[TR]
[TD]non sono usciti tutti i 4.005 ambi, ma cmq lo script li conteggia tutti i 4.005 ambi.[/TD]
[/TR]
[TR]
[TD]vedi "GruppoFrq" a zero : [TABLE="border: 0, cellpadding: 0, cellspacing: 0"]
[TR]
[TD="width: 82"]Nazionale[/TD]
[TD="width: 69"] [/TD]
[TD="width: 62"] [/TD]
[TD="width: 59"] [/TD]
[TD="width: 78"] [/TD]
[TD="width: 69"] [/TD]
[TD="width: 473"] [/TD]
[/TR]
[TR]
[TD="colspan: 7"]Ruota 12 dall'estrz. 7440 del 04.05.2005 all'estrz. 9268 del = 21.01.2017[/TD]
[/TR]
[TR]
[TD="colspan: 7"]------------Totale estrz. 1829 -------------------------------------[/TD]
[/TR]
[TR]
[TD] [/TD]
[TD] [/TD]
[TD] [/TD]
[TD] [/TD]
[TD] [/TD]
[TD] [/TD]
[TD] [/TD]
[/TR]
[TR]
[TD="width: 82"] GruppoFrq [/TD]
[TD="width: 69"] Ritardo [/TD]
[TD="width: 62"] RitardoMax [/TD]
[TD="width: 59"] RitardoMin [/TD]
[TD="width: 78"] Frequenza [/TD]
[TD="width: 69"] Quantita [/TD]
[TD="width: 473"] Ambi [/TD]
[/TR]
[TR]
[TD="width: 82"]0[/TD]
[TD="width: 69"]3[/TD]
[TD="width: 62"]29[/TD]
[TD="width: 59"]0[/TD]
[TD="width: 78"]3972[/TD]
[TD="width: 69"]33[/TD]
[TD="width: 473"]1-50/6-9/7-30/8-35/17-84/18-55/21-40/21-77/25-42/28-79 30-57/34-44/35-40/35-41/35-46/36-45/39-51/40-54/41-51/43-84 47-89/49-70/50-81/51-54/52-56/53-84/53-87/55-60/56-70/61-65 65-72/66-88/77-78 [/TD]
[/TR]
[TR]
[TD="width: 82"]1[/TD]
[TD="width: 69"]2[/TD]
[TD="width: 62"]10[/TD]
[TD="width: 59"]0[/TD]
[TD="width: 78"]3774[/TD]
[TD="width: 69"]198[/TD]
[TD="width: 473"]1-13/1-29/1-37/1-71/1-73/2-31/2-34/2-35/2-51/2-57 2-77/2-86/3-7/3-11/3-32/3-48/3-57/3-59/3-84/3-85 3-88/4-14/4-85/5-36/6-35/6-87/7-35/7-41/7-73/7-75 7-79/8-30/8-31/8-58/8-72/10-38/10-64/10-65/11-24/11-76 11-83/12-44/12-47/12-60/13-38/13-78/14-17/14-53/14-62/14-86 15-45/15-75/15-77/16-21/16-54/16-56/17-59/18-35/18-45/19-30 19-37/19-41/19-43/19-75/19-88/20-45/20-65/20-84/20-85/21-24 21-32/21-41/21-74/21-85/22-53/22-69/22-78/23-53/24-30/24-43 24-67/24-72/24-89/25-29/25-35/26-52/26-60/26-90/27-40/28-35 28-45/28-49/28-58/28-82/28-88/29-70/30-49/30-54/30-56/30-74 30-80/31-74/31-80/31-82/31-87/32-54/32-64/32-78/32-83/32-88 32-90/34-46/34-67/34-88/35-43/35-64/35-81/37-40/38-41/39-47 40-45/40-86/41-49/41-59/41-61/41-63/41-69/41-72/41-75/41-77 41-79/41-81/41-85/42-81/43-56/43-63/43-71/44-49/44-75/45-49 46-62/47-72/47-75/47-87/48-69/49-64/50-64/51-57/51-68/51-73 51-74/51-88/52-79/52-87/53-59/53-85/54-56/54-60/54-88/55-58 55-75/55-88/56-68/56-71/56-72/57-84/58-72/58-87/59-88/62-65 62-89/63-75/63-86/64-76/64-86/64-90/66-75/66-83/67-69/67-71 67-79/69-83/70-74/71-74/71-81/72-82/72-83/74-80/74-87/75-84 75-86/79-84/80-83/81-88/83-84/83-85/83-87/87-88 [/TD]
[/TR]
[/TABLE]
ecc... ecc... [TABLE="border: 0, cellpadding: 0, cellspacing: 0"]
[TR]
[TD="width: 833"]
stickman.gif
[/TD]
[/TR]
[TR]
[TD]Buona giornata a tutti.[/TD]
[/TR]
[TR]
[TD]A presto [/TD]
[/TR]
[TR]
[TD]Silop ;) ;) ;)[/TD]
[/TR]
[/TABLE]
[/TD]
[/TR]
[/TABLE]
 
ciao a tutti , ecco lo script che mostra i dettagli dell'elaborazione , ovviamente è un po' piu lento di quello al primo post , infatti io consiglio di usare il seguente script solo per verificare se i calcoli siano giusti oppure no , in caso non si voglia analizzare il funzionamento dello script ma solo lanciarlo per vedere la situazione attuale dei vari gruppi di frequenza va usato il primo script

Codice:
Option Explicit

' posizione indice nella matrice aGruppi
Const cFrq = 0
Const cRit = 1
Const cRitMax = 2
Const cRitMin = 3
' valore minimo assurdo per il calcolo del rit min
Const cRitMinIniziale = 100000

Sub Main
    Dim aGruppi(300,3) ' freq , rit , ritmax , ritmin
    Dim aAmbi(4005,2)
    Dim nPrimaEstrValida,nInizio,nFine
    Dim idEstr,nRuota
    ReDim aNumRuota(0)
    Dim nEstrAna

    ' la prima estr valida è quella dalla quale si parte per il calcolo
    ' preventivo della frequenza di tutti gli ambi
    ' il calcolo preventivo è fatto sul range identificato da
    ' nPrimaEstrValida <---> (nInizio-1)

    nPrimaEstrValida = DataEstrToIdEstr(5,1,1945)
    nInizio = EstrazioneIni
    nFine = EstrazioneFin
    nRuota = BA_

    ' inizializza  array gruppi (ritardi minimi / ritardo)
    Call InitRitardiMinGruppi(aGruppi)
    ' calcola le frequenze iniziali degli ambi
    Call CalcolaFrequenzeIniziali(aAmbi,nPrimaEstrValida,nInizio - 1,nRuota)

    'inizia il ciclo di analisi delle estrazioni
    nEstrAna =0
    For idEstr = nInizio To nFine

        nEstrAna = nEstrAna +1
        Call Messaggio ("estrazione " & idEstr)
        ' per ogni estrazione estrae il vettore dei numeri usciti
        Call GetArrayNumeriRuota(idEstr,nRuota,aNumRuota)
        ' i numeri usciti danno luogo a 10 ambi ogni ambo uscito incrementa la sua frequenza
        ' quindi andiamo a gestire anche il calcolo delle frequenze dei vari gruppi
        Call AggiornaValoriGruppi(idEstr,aNumRuota,aGruppi,aAmbi,nEstrAna)

        Call AvanzamentoElab(nInizio,nFine,idEstr )
        If ScriptInterrotto Then Exit For
    Next

    ' output in tabella
    Call CreaTabGruppi(aGruppi,aAmbi)
End Sub

Sub CreaTabGruppi(aGruppi,aAmbi)

    Dim k

    ReDim aV(7)
    aV(1) = "  GruppoFrq  "
    aV(2) = "  Ritardo  "
    aV(3) = "  RitardoMax  "
    aV(4) = "  RitardoMin  "
    aV(5) = "  Frequenza  "
    aV(6) = "  Quantita  "
    aV(7) = "  Ambi  "
    Call InitTabella(aV)

    For k = 0 To UBound(aGruppi)
        If aGruppi(k,cFrq) > 0 Then
            aV(1) = k
            aV(2) = aGruppi(k,cRit)
            aV(3) = aGruppi(k,cRitMax)
            aV(4) = aGruppi(k,cRitMin)
            aV(5) = aGruppi(k,cFrq)
            aV(7) = GetAmbiDellaFrq(k,aAmbi,aV(6))

            Call AddRigaTabella(aV)


        End If
    Next

    Call CreaTabella

End Sub
Function GetAmbiDellaFrq(nFrq,aAmbi,nRetQ)
    Dim k
    Dim sRet
    Dim t
    sRet = "<pre>"
    t = 0
    For k = 1 To UBound(aAmbi)
        If aAmbi(k,2) = nFrq Then
            t = t + 1
            sRet = sRet & aAmbi(k,0) & "-" & aAmbi(k,1) & "/"
            If t Mod 10 = 0 Then sRet = RimuoviLastChr(sRet,"/") & vbCrLf
        End If
    Next

    nRetQ = t
    GetAmbiDellaFrq = RimuoviLastChr(sRet,"/") & "</pre>"
End Function
Sub AggiornaValoriGruppi(idEstr,aNum,aGruppi,aAmbi ,nEstrAna)
    ReDim aCol(2)
    Dim idAmbo
    Dim k
    Dim nFrqPrec
    ReDim aBFreqUscite(UBound(aGruppi))
    Dim nRitMxPrima , nRitMinPrima


    Call Scrivi ("Estrazione : " & idEstr  & " Estrazioni Analizzate : " & nEstrAna)
    ReDim aV(10)
    aV (1) = " Estr "
    aV (1) = " Ambo "
    aV (2) = " GrProv "
    aV (3) = " GrDest "
    aV (4) = " Frq Prima "
    aV (5) = " Frq Dopo "
    aV (6) = " Rit Prima "
    aV (7) = " RitMx Prima "
    aV (8) = " RitMx Dopo "
    aV (9) = " RitMin Prima "
    aV (10) = " RitMin Dopo "


    Call InitTabella (aV)


    ' importante prima di sviluppare in ambi ordinare il vettore in mododo crescente
    ' altrimenti non funziona la Function <PosRecordAmbi>
    Call OrdinaMatrice(aNum,1)
    ' inizia lo sviluppo in ambi dei 5 numeri della ruota
    Call InitSviluppoIntegrale(aNum,2)
    Do While GetCombSviluppo(aCol)
        'ottiene l'indice dell'ambo tramite un 'appositafunzione
        ' per poter individuare in modo diretto l'elemento
        ' della matrice aAmbi che si riferisce all'ambo corrente
        idAmbo = PosizioneRecordAmbi(aCol(1),aCol(2))

        ' legge la freq attuale (ovvwero la precedente) prima dell'uscita corrente dell'estrazione <idEstr>
        ' il valore ottenuto indica il gruoppo di frequenza nel quale è sortito l'ambo
        nFrqPrec = aAmbi(idAmbo,2)

        ' memorizzo i ritardi min e max precedenti a questa uscita
        nRitMxPrima  = aGruppi (nFrqPrec , cRitMax)
        nRitMinPrima = Iif (aGruppi (nFrqPrec , cRitMin) = cRitMinIniziale , "-" ,aGruppi (nFrqPrec , cRitMin))



        ' aggiornamento frequenza ambo uscito nell'array degli ambi
        ' in pratica incrementa la frequenza
        aAmbi(idAmbo,2) = aAmbi(idAmbo,2) + 1

        ' memorizzo che è uscita la frequenza <nFrqPrec>
        ' ovvero è uscito un ambo del gruppo <nFrqPrec>
        ' serve per non incrementare i ritardi del gruppo
        aBFreqUscite(nFrqPrec) = True
        ' incrementa la frequenza del gruppo
        aGruppi(nFrqPrec,cFrq) = aGruppi(nFrqPrec,cFrq) + 1
        ' calcola rit max del gruppo
        If aGruppi(nFrqPrec,cRit) > aGruppi(nFrqPrec,cRitMax) Then
            aGruppi(nFrqPrec,cRitMax) = aGruppi(nFrqPrec,cRit)
        End If
        ' calcola rt min del gruppo
        If aGruppi(nFrqPrec,cRit) < aGruppi(nFrqPrec,cRitMin) Then
            aGruppi(nFrqPrec,cRitMin) = aGruppi(nFrqPrec,cRit)
        End If


        ' scrive evoluzione ambo
        Call ScriviSituazioneAmbo (idEstr , idAmbo , aAmbi , nFrqPrec ,aGruppi ,nRitMxPrima , nRitMinPrima)

        ' azzera il ritardo essendo uscito un ambo del gruppo <nFrqPrec>

        aGruppi(nFrqPrec,cRit) = 0


    Loop

    Call CreaTabella

    ' incrementa il ritardo dei gruppi che non hanno visto la sortita di un ambo in essi contenuti
    For k = 0 To UBound(aGruppi)
        If Not aBFreqUscite(k) Then
            aGruppi(k,cRit) = aGruppi(k,cRit) + 1
        End If
    Next

End Sub

Sub ScriviSituazioneAmbo (idestr , idAmbo , aAmbi , nFrqPrec ,  aGruppi ,nRitMxPrima , nRitMinPrima)

    ReDim aV(10)
    aV(1) = aAmbi(idAmbo , 0) & "-" & aAmbi(idAmbo , 1)
    aV(2) = nFrqPrec
    aV(3) = nFrqPrec +1
    aV(4) = aGruppi(nFrqPrec , cFrq) -1
    aV(5) =  aGruppi(nFrqPrec , cFrq)
    aV(6) =  aGruppi(nFrqPrec , cRit)
    aV(7) =  nRitMxPrima
    aV(8) =  aGruppi(nFrqPrec , cRitMax)
    aV(9) =  nRitMinPrima
    aV(10) = aGruppi (nFrqPrec , cRitMin)






    Call AddRigaTabella ( aV )





End Sub
Sub CalcolaFrequenzeIniziali(aAmbi,PrimaEstrValida,PrimaEstranalisi,nRuota)

    Dim aNum
    ReDim aCol(2)
    ReDim aRuota(1)

    Dim i

    ' calcola la frquenza di tutti gli ambi nel range precedente a quello di analisi
    i = 0
    aRuota(1) = nRuota
    aNum = GetNumPerSviluppo
    Call InitSviluppoIntegrale(aNum,2)
    Do While GetCombSviluppo(aCol)
        i = i + 1
        aAmbi(i,0) = aCol(1) ' memorizzo l'ambo (primo num)
        aAmbi(i,1) = aCol(2) ' Secondo num
        aAmbi(i,2) = SerieFreqTurbo(PrimaEstrValida,PrimaEstranalisi,aCol,aRuota,2)

        ' solo per test
        'Call Scrivi (StringaNumeri(aCol) & "  freq " & aAmbi(i,2) )


    Loop

End Sub
Sub InitRitardiMinGruppi(aGruppi)
    Dim k
    For k = 0 To UBound(aGruppi)
        aGruppi(k,cRitMin) = cRitMinIniziale
        aGruppi(k,cRit) = 0
        aGruppi(k,cRitMax) = 0
        aGruppi(k,cFrq) = 0


    Next
End Sub
Function PosizioneRecordAmbi(n1,n2)

    ' funzione a cui passando due numeri si ottiene la posizione (l'indice)
    ' nell'array ambi
    ' per esempio se passo 1 ,2 ottengo 1
    ' per esempio se passo 89 , 90 ottengo 4005

    Dim nBase
    Dim s
    Dim k '
    If n1 = 1 Then
        PosizioneRecordAmbi = n2 - 1
    Else
        nBase = 89
        For k = 1 To n1 - 1
            s = s + nBase
            nBase = nBase - 1
        Next
        PosizioneRecordAmbi = s +(n2 - n1)
    End If
End Function
 
qualcosa sono riuscito ad aggiungere allo script
questo è un esempio base di cosa si può avere come informazioni:

[IMG2=JSON]{"data-align":"none","data-size":"full","src":"http:\/\/funkyimg.com\/i\/2nUxa.jpg"}[/IMG2]
 
Ciao LuigiB

sto cercando di creare un archivio parziale, da quello originale o da un file di excel o txt,

ma non ricordo più come si fa a creare un file .dat

in poche parole non sto riuscendo,

se hai qualche dritta da darmi.
 
ciao se devi creare un file con lo stesso formato di quello di spaziometria devi usare la funzione
SalvaEstrazione
alla quale dovrai passare tutti i parametri necessari spiegati anche nell'help
 
ciao LuigiB

mi sono spiegato male,

l'archivio lo devo importare come archivio utente, in spaziometria.

l'archivio è quello di spaziometria, è un duplicato, di quasi tutto il file, ma troncato ad una certa data.

e vorrei poi utilizzarlo con degli script.
 
non so se si poteva fare da codice , non mi ricordo .. al limite devi andare nel menu configurazioen nel tab percorsi e settare li il tuo file
 
Ma non si poteva creare un archivio utente e trattarlo come un archivio virtuale?

Non so, mi sembrava fosse possibile una cosa del genere.

con la tendina sotto si selezionava l'archivio desiderato, come quelli del sabato o base dati.01.dat
 
ho visto che esite la possibilita di inserire un archivio filtrato , quindi devi sfruttare questa funzione ,poi come hai detto usi la tendina sotto.
 
Buongorno,
Salutando e scusandoci con Beppignello, alias Rubino .
Da cui abbiamo rubato dei listati , ad uso personale .
A cui facciamo i comlimenti per i suoi lavori , e per la nuova vita .
Volevamo chiedere a LuigiB , se puo' dare un occhiata al listato seguente ,
che non e' altro il seguito della richiesta di fillottto . .
Ci da' errore , ma mom riusciamo a capire l' intoppo .
Codice:
Option Explicit

' posizione indice nella matrice aGruppi
Const cFrq = 0
Const cRit = 1
Const cRitMax = 2
Const cRitMin = 3
' valore minimo assurdo per il calcolo del rit min
Const cRitMinIniziale = 100000

Sub Main
    Dim sFileArchivio
    sFileArchivio = GetDirectoryAppData & "Archivio LottoUK\Lotto UK 49's.txt"
    Call ApriBaseDatiFT(sFileArchivio,07,",",49)
    Dim aGruppi(300,3) ' freq , rit , ritmax , ritmin
    Dim aAmbi(4005,2)
    Dim nPrimaEstrValida,nInizio,nFine
    Dim idEstr,nRuota
    ReDim aNumRuota(05)

    ' la prima estr valida è quella dalla quale si parte per il calcolo
    ' preventivo della frequenza di tutti gli ambi
    ' il calcolo preventivo è fatto sul range identificato da
    ' nPrimaEstrValida <---> (nInizio-1)

    'nPrimaEstrValida = DataEstrToIdEstr(5,1,1945)''''
    nPrimaEstrValida = DataEstrToIdEstrFT(1,1,2010)
    nInizio = 0001
    nFine = EstrazioniArchivioFT
   ' nRuota = BA_''''

    ' inizializza  array gruppi (ritardi minimi / ritardo)
    Call InitRitardiMinGruppi (aGruppi)
    ' calcola le frequenze iniziali degli ambi
   ' Call CalcolaFrequenzeIniziali(aAmbi,nPrimaEstrValida,nInizio-1,nRuota)''''''
    Call CalcolaFrequenzeIniziali(aAmbi,nPrimaEstrValida,nInizio-1)
    'inizia il ciclo di analisi delle estrazioni
    For idEstr = nInizio To nFine
        ' per ogni estrazione estrae il vettore dei numeri usciti
       'Call GetArrayNumeriRuota(idEstr,nRuota,aNumRuota)
        aNumRuota(01)=EstrattoFT(idEstr,01)
        aNumRuota(02)=EstrattoFT(idEstr,02)
        aNumRuota(03)=EstrattoFT(idEstr,03)
        aNumRuota(04)=EstrattoFT(idEstr,04)
        aNumRuota(05)=EstrattoFT(idEstr,05)
        'aNumRuota(06)=EstrattoFT(idEstr,06)
        'aNumRuota(07)=EstrattoFT(idEstr,07)
        ' i numeri usciti danno luogo a 10 ambi ogni ambo uscito incrementa la sua frequenza
        ' quindi andiamo a gestire anche il calcolo delle frequenze dei vari gruppi
        Call AggiornaValoriGruppi(idEstr,aNumRuota,aGruppi,aAmbi)

        Call AvanzamentoElab( nInizio , nFine , idEstr)
        If ScriptInterrotto Then Exit For
    Next

    ' output in tabella
    Call CreaTabGruppi (aGruppi ,aAmbi)
End Sub
Sub CreaTabGruppi(aGruppi,aAmbi)

    Dim k
    Dim nTot

    ReDim aV(7)
    aV(1) = "  GruppoFrq  "
    aV(2) = "  Ritardo  "
    aV(3) = "  RitardoMax  "
    aV(4) = "  RitardoMin  "
    aV(5) = "  Frequenza  "
    aV(6) = "  Quantita  "
    aV(7) = "  Ambi  "
    Call InitTabella(aV)

    For k = 0 To UBound(aGruppi)
        'If aGruppi(k,cFrq) > 0 Then
            aV(1) = k
            aV(2) = aGruppi(k,cRit)
            aV(3) = aGruppi(k,cRitMax)
            aV(4) = aGruppi(k,cRitMin)
            aV(5) = aGruppi(k,cFrq)
            aV(7) = GetAmbiDellaFrq(k,aAmbi,aV(6))

            Call AddRigaTabella(aV)

            nTot = nTot + aV(6)
        'End If
    Next
    MsgBox nTot

    Call CreaTabella

End Sub
Function GetAmbiDellaFrq (nFrq ,aAmbi  , nRetQ)
    Dim k
    Dim sRet
    Dim t
    sRet = ""
    t =0
    For k = 1 To UBound(aAmbi)
        If aAmbi(k , 2) = nFrq Then
            t = t + 1
            sRet = sRet & aAmbi(k,0) & "-" & aAmbi(k,1) & "/"
            If t Mod 10 =0 Then sRet =   RimuoviLastChr( sRet , "/") & vbCrLf
        End If
    Next

    nRetQ = t
    GetAmbiDellaFrq  = RimuoviLastChr( sRet , "/")
End Function
Sub AggiornaValoriGruppi(idEstr,aNum,aGruppi,aAmbi)
    ReDim aCol(2)
    Dim idAmbo
    Dim k
    Dim nFrqPrec
    ReDim aBFreqUscite (UBound(aGruppi))

    ' importante prima di sviluppare in ambi ordinare il vettore in mododo crescente
    ' altrimenti non funziona la Function <PosRecordAmbi>
    Call OrdinaMatriceTurbo(aNum,1)
    ' inizia lo sviluppo in ambi dei 5 numeri della ruota
    Call InitSviluppaComb(aNum,2)
    Do While GetCombSviluppo(aCol)
        'ottiene l'indice dell'ambo tramite un 'appositafunzione
        ' per poter individuare in modo diretto l'elemento
        ' della matrice aAmbi che si riferisce all'ambo corrente
        idAmbo = PosizioneRecordAmbi(aCol(1),aCol(2))

        ' legge la freq attuale (ovvwero la precedente) prima dell'uscita corrente dell'estrazione <idEstr>
        ' il valore ottenuto indica il gruoppo di frequenza nel quale è sortito l'ambo
        nFrqPrec = aAmbi(idAmbo,2)

        ' aggiornamento frequenza ambo uscito nell'array degli ambi
        ' in pratica incrementa la frequenza
        aAmbi(idAmbo,2) = aAmbi(idAmbo,2) +1

        ' memorizzo che è uscita la frequenza <nFrqPrec>
        ' ovvero è uscito un ambo del gruppo <nFrqPrec>
        ' serve per non incrementare i ritardi del gruppo
        aBFreqUscite (nFrqPrec ) = True
        ' incrementa la frequenza del gruppo
        aGruppi(nFrqPrec,cFrq) = aGruppi(nFrqPrec,cFrq) + 1
        ' calcola rit max del gruppo
        If aGruppi(nFrqPrec,cRit) > aGruppi(nFrqPrec,cRitMax) Then
            aGruppi(nFrqPrec,cRitMax) =aGruppi(nFrqPrec,cRit)
        End If
        ' calcola rt min del gruppo
        If aGruppi(nFrqPrec,cRit) < aGruppi(nFrqPrec,cRitMin) Then
            aGruppi(nFrqPrec,cRitMin) =aGruppi(nFrqPrec,cRit)
        End If
        ' azzera il ritardo essendo uscito un ambo del gruppo <nFrqPrec>
        aGruppi(nFrqPrec,cRit) =0


    Loop
    ' incrementa il ritardo dei gruppi che non hanno visto la sortita di un ambo in essi contenuti
    For k = 0 To UBound(aGruppi)
        If Not aBFreqUscite (k) Then
            aGruppi (k , cRit ) = aGruppi (k , cRit ) +1
        End If  
    Next

End Sub

Sub CalcolaFrequenzeIniziali(aAmbi,PrimaEstrValida,PrimaEstranalisi)

    Dim aNum
    ReDim aCol(2)
    'ReDim aRuota(1)

    Dim i

    ' calcola la frquenza di tutti gli ambi nel range precedente a quello di analisi
    i = 0
    'aRuota(1) = nRuota
   ' aNum = GetNumPerSviluppo
    Call InitSviluppaComb(aNum,2)
    Do While GetCombSviluppo(aCol)
        i = i + 1
        aAmbi(i,0) = aCol(1) ' memorizzo l'ambo (primo num)
        aAmbi(i,1) = aCol(2) ' Secondo num
        'aAmbi(i,2) = SerieFreqTurbo(PrimaEstrValida,PrimaEstranalisi ,aCol,aRuota,2)
        aAmbi(i,2) = SerieFreqFT(PrimaEstrValida,PrimaEstranalisi ,aCol,2)
        ' solo per test
        'Call Scrivi (StringaNumeri(aCol) & "  freq " & aAmbi(i,2) )


    Loop

End Sub
Sub InitRitardiMinGruppi (aGruppi)
    Dim k
    For k = 0 To UBound (aGruppi)
        aGruppi (k , cRitMin) = cRitMinIniziale
        aGruppi (k , cRit) =0
    Next
End Sub
Function PosizioneRecordAmbi(n1,n2)

    ' funzione a cui passando due numeri si ottiene la posizione (l'indice)
    ' nell'array ambi
    ' per esempio se passo 1 ,2 ottengo 1
    ' per esempio se passo 89 , 90 ottengo 4005

    Dim nBase
    Dim s
    Dim k '
    If n1 = 1 Then
        PosizioneRecordAmbi = n2 - 1
    Else
        nBase = 89
        For k = 1 To n1 - 1
            s = s + nBase
            nBase = nBase - 1
        Next
        PosizioneRecordAmbi = s +(n2 - n1)
    End If
End Function
Function InitSviluppaComb(anumeri,Classe)

    Dim k
    ReDim anumeri(49)
    For k = 01 To 49
        anumeri(k) = k
    Next
    InitSviluppaComb = InitSviluppoIntegrale(anumeri,Classe)

End Function

Ringraziando tutti .
 
ciao Magia , i motivi per cui ti da errore sono dovuti al fatto che lo script previsto per il lotto gestisce 90 numeri quindi vanno fatte tutte le variazioni opportune per fargliene gestire 49 , c'è sia una funzione da modificare sia un errore di Amaretto che dopo ti spiego dato che è importante.
Andiamo per ordine

dive c'è scritto
Codice:
 Dim aAmbi(4005,2)

va ovviamente modificato con 1176 cioè gli ambi che si formano con 49 numeri

la funzione PosizioneRecordAmbi prevedeva 4005 ambi con 90 numeri quindi questa va sostituita
con la seguente alla quale ho aggiunto un parametro (non previsto nello script di prima ) a cui nel vostro caso dovrete passare 49 oppure si passa 90 nel caso del lotto

Codice:
Function PosizioneRecordAmbi(n1,n2,nMaxNumeri)
    ' funzione a cui passando due numeri si ottiene la posizione (l'indice)
    ' nell'array ambi
    ' per esempio se passo 1 ,2 ottengo 1
    ' per esempio se passo 89 , 90 ottengo 4005
    Dim nBase
    Dim s
    Dim k '
    If n1 = 1 Then
        PosizioneRecordAmbi = n2 - 1
    Else
        nBase = nMaxNumeri - 1
        For k = 1 To n1 - 1
            s = s + nBase
            nBase = nBase - 1
        Next
        PosizioneRecordAmbi = s +(n2 - n1)
    End If
End Function

fatte queste modifiche lo script avrebbe dovuto funzionare perfettamente se non fosse per
un errore insidioso introdotto da Amaretto.

c'èera una funzione nello script questa :

Codice:
Function InitSviluppaComb(anumeri,Classe)


    InitSviluppaComb = InitSviluppoIntegrale(anumeri,Classe)

End Function

alla quale si passava il vettore dei numeri da sviluppare a sua volta ottenuto con un 'apposita funzione (GetNumPerSviluppo)
ebbene non essendoci qesta funzione nel caso dei file txt Amaretto ha corretto cosi la funzione
di cui sopra

Codice:
Function InitSviluppaComb(anumeri,Classe)

    Dim k
    ReDim anumeri(49)
    For k = 01 To 49
        anumeri(k) = k
    Next
    InitSviluppaComb = InitSviluppoIntegrale(anumeri,Classe)

End Function


vuol dire che questa funzione invece di sviluppare i numeri che riceve per parametro
sviluppa i numeri che dice lei ovvero sempre 49 numeri preimpostati col ciclo k
si da il caso che questa funzione sia usata in due parti dello script.
una volta per sviluppare tutti gli ambi che si formano con 49 numeri
ma una seconda volta per sviluppare gli ambi che si formano con i numeri della
estrazione corrente ..e qui sbagliava !
Questa funzione deve continuare a sviluppare i numeri ricevuti nel vettore dal chiamante
non deve alterare il vettore ...
Quindi visto che GetNumPerSviluppoFT non esiste la creiamo noi nello script e poi la usiamo
al posto della riga che Amaretto aveva remmato

Codice:
 ' aNum = GetNumPerSviluppo

Codice:
Function GetNumPerSviluppoFt
    Dim k
    ReDim anumeri(49)
    For k = 01 To 49
        anumeri(k) = k
    Next
    GetNumPerSviluppoFt = anumeri
End Function
 

Ultima estrazione Lotto

  • Estrazione del lotto
    martedì 07 ottobre 2025
    Bari
    22
    79
    42
    33
    02
    Cagliari
    06
    81
    69
    21
    73
    Firenze
    52
    15
    67
    03
    60
    Genova
    21
    76
    02
    23
    19
    Milano
    28
    35
    08
    53
    60
    Napoli
    05
    57
    14
    39
    43
    Palermo
    46
    35
    40
    64
    48
    Roma
    04
    80
    71
    23
    40
    Torino
    38
    53
    05
    78
    50
    Venezia
    90
    43
    01
    60
    02
    Nazionale
    02
    41
    72
    22
    31
    Estrazione Simbolotto
    18
    37
    07
    22
    09
Indietro
Alto