Novità

AIUTO , SE POTETE, AGGIORNAMENTO 10ELOTTO5MIN

Ahime temo che allora non sia proprio tutto chiaro.

Ahime per me personalmente piu che altro Luigi...:(

E' vero o no che aEstr è un array dichiarato con un tipo dati UDT ?

Si è vero è un array con struttura dati del tipo UDT come da dichiarazione nel modulo .bas

E' vero o no che ogni elemento dell'array è quindi una struttura del tipo struct_estrazione ?

Si è vero ogni elemento ha una struttura dati del tipo strctEstrazione

E' vero o no che questa struttura dispone di diversi membri per ogni elemento dell'array ?

Si è vero la struttura dispone per l'esattezza dei membri : nNumEstrazione, GG, Mm ed AA

Magari è proprio uno di questi membri che va testato per sapere se l'estrazioner è valida ... forse proprio il membro aEstr(k).structData.NumEstr....

Più o meno è la stessa cosa della mio ultimo dubbio, io con l'aiuto del debug e seguendo il flusso con step di F8 ho notato proprio che aEstr(k).strctData.nNumEstrazione è il numero fisico dell'estrazione, stesso parametro che si dà in pasto all procedura SalvaEstrazioneDL.

Codice:
 SalvaEstrazioneDL(aNumeri, sDataCorrente, [COLOR="#FF0000"][B]aEstr(k).strctData.nNumEstrazione[/B][/COLOR], sFile)


Mi resta ancora, e come prima, come fare (a livello anche di logica) il famoso test per sapere se l'estrazione è valida o meno...




Ciao
 
come fai tu essere umano a sapere se un'estrazione è valida oppure no ?
Bhe la stessa cosa la deve fare il computer.
Ciao
 
Benissimo , allora trova un modo per farlo capire al pc e a organizzati di conseguenza.
Ricordati che hai tutto il tempo che vuoi .. pure sei mesi .. lo scopo (almeno quello per il quale io ti ho aiutato) è insegnarti qualcosa di programmazione , non aggiornare il 10 e lotto ...quello è un effetto trasversale se riesci a finire l'utility.
ciao
 
Certo Luigi,

infatti se vogliamo dirla tutta a me personalmente non interessa aggiornare il programma, io manco gioco.

Volevo il Tuo aiuto solo per capire meglio e qualcosa in più di programmazione, ci volessero anche 2 anni.

Tutto qua!


Ciao
 
e infatti il mio non aiuto di adesso è in realtà l'aiuto piu grande.
Ripeto ancora che a livello di codice non c'è nessuna istruzione nuova da usare ..
Quindi sei tu che devi metabolizzare quanto appreso e usarlo per quello che serve.

ciao
 
Scusa moro_80 ma hai abbandonato il progetto o non hai più tempo da dedicare all'aggornamento del 10 e lotto.
Ho capito che non ti interessa più di tanto l'aggornamento ma se hai risolto il problema ti garantisco che faresti
una cosa gradita a molte più persone di quelle che immagini.Se invece non hai risolto grazie lo stesso per averci
provato.CIAO
 
Ciao setting,

no, non ho abbandonato il progetto.
Semplicemente sto cercando (tempo permettendo) di "metabolizzare quanto appreso e usarlo per quello che serve" come dice il Maestro Luigi, poi a dirla tutta mi sentivo un po' in colpa di stressare Luigi stesso ogni giorno, ecco perchè ho preferito non postare più e cercare di capire e risolvere quanto manca da solo, ammesso che ci riesca :)

Il mio obbiettivo è e resta quello di apprendere quanto di più possibile di programmazzione, poi se il plugin viene completato meglio per tutti.


Ciao
 
Ciao Moro , guarda che io non mi stresso , semplicemente penso che davvero non hai bisogno di altri aiuti , devi solo ragionare un po' ..
La programmazione consiste nell'automatizzare attraverso un programma un processo che uno potrebbe fare tranquillamente a mano.
Tu ti sei arenato su sto fatto delle estrazioni mancanti.
Adesso non so bene in che termini , ma è certo che se sei capace di individuare l'errore da essere umano devi essere anche in grado di trasformare il controllo in codice ...
Ciao
 
Ultima modifica di un moderatore:
Ciao Luigi,
mi fa piacere rileggere Tue parole...

Credimi che ci stò ragionando già da un bel po' , ho fatto molte prove ma purtroppo non ho ancora ben capito come fare per "incastrare" sta function dentro il processo Salvaestrazioni.
Riesco a passare il parametro, riesco a leggerlo, a vederne il contenuto ma ahimè non capisco come dire al programma : Se sono tutte le 288 allora salva, se son di meno salva le mancanti come "finte".
Questo è il mio inghippo o la mia arenatura se vogliamo, la logica l'ho capita ma non ho capito come trasformare sta cosa umana in linguaggio macchina.
Poi, ripeto, per non romperti più di tanto ho preferito far prove o debug o tentativi...come vuoi.

Ciao
 
si trasforma applicando i costrutti del linguaggio.

C'è da prendere una decisione ? Si usano i blocchi If ..End if , o Select Case
C'è da memorizzare dei valori ? si usano le variabili
C'è da contare o ripetere ? si usano i cicli

Con queste istruzioni di base e che abbiamo ampiamente visto si puo implementare quello che serve a te.

Da quello che mi ricordo all'uscita della funzione che legge la pagina html abbiamo un array che contiene
le estrazioni lette

Nel codice che hai gia scritto cicli su questo array e salvi ciascuna estrazione nell'archivio . addirittura se ti ricordi
fai pure il test sul numero estrazione per salvare solo le estrazioni nuove.

In quello stesso ciclo va inserita una funzione a cui passare l'elemento corrente dell'array , questa funzione leggera
i dati di quell'elemento e ne valuterà la coerenza , ad esempio se i valori relativi ai numeri estratti sono a 0 mi pare
ovvio che quella estrazione non sia valida.
Altri controlli si potrebbero fare , una volta che li hai pensati li implementi
Superati tutti i controlli previsti quindi questa fnzione tornerebbe True , torenrebbe false in caso contrario.

Tornando al famoso ciclo di cui paravo all'inizio tu inserirai al suo interno la chiamata a questa funzione passandogli
l'elemento corrente dell'array (precisamente la inserirai nel blocco che testa se il numero estrazione appartiene ad una estrazione non presente in archivio quando il test è superato) , se torna true salvi l'estrazione regolarmente , senno ne salvi una fittizia semplicemente creando un array
di 20 elmenti a 0 e usandolo per vaorizzare il parametro della funzione SalvaEstrazioniDL



ciao
 
Ultima modifica di un moderatore:
si trasforma applicando i costrutti del linguaggio.

C'è da prendere una decisione ? Si usano i blocchi If ..End if , o Select Case
C'è da memorizzare dei valori ? si usano le variabili
C'è da contare o ripetere ? si usano i cicli

Con queste istruzioni di base e che abbiamo ampiamente visto si puo implementare quello che serve a te.

Ciao Luigi,
tutto vero e tutto corretto...mi resta comunque "l'arenamento" diciamo cosi'.

Da quello che mi ricordo all'uscita della funzione che legge la pagina html abbiamo un array che contiene
le estrazioni lette

Esattamente, subito dopo l'uscita della pagina html ho l'array contenente le estrazioni lette...

Esattamente parliamo di questo:

Codice:
Private Sub LeggiFileHtmlTornaEstrazioni(sFile As String, aRetEstr() As STRUCT_ESTRAZIONE_10LOTTO, nAnno As Integer)
    Dim nRiga As Long    'faccio il cicla sulle righe lette
    Dim nTrovate As Long  ' faccio il conteggio di tutte le estrazioni trovate
    Dim nNumTrovati As Integer  ' faccio il conteggio di tutti i num trovati
    ReDim aRetEstr(0) As STRUCT_ESTRAZIONE_10LOTTO
    ReDim aRighe(0) As String    ' ora con questa funzione preparo l'array che conterà tutte le righe del file
    Call LeggiFileTornaRighe(sFile, aRighe)    ' richiamo la funzione che effettua la lettura del file
    For nRiga = 0 To UBound(aRighe)
        If InStr(aRighe(nRiga), "numeroEstrazione") Then    'contiene la data, ed è quella che dice che abbiamo trovato una nuova estrazione
            nTrovate = nTrovate + 1 ' adesso faccio l'incremento delle estrazioni che ho trovato
            ReDim Preserve aRetEstr(nTrovate) As STRUCT_ESTRAZIONE_10LOTTO  ' ora ridimensiono l'array preservando i valori precedenti
            Call LeggiDataEId(aRetEstr(nTrovate), aRighe(nRiga), nAnno)    ' richiamo alla funzione di "supporto" denominata "LeggiDataEId"
            nNumTrovati = 0
        End If
        If InStr(aRighe(nRiga), "numeroEstratto") Then    ' è la riga che contiene uno dei numeri estratti
            nNumTrovati = nNumTrovati + 1    'variabile per conteggiare le righe lette
            Call LeggiNumeroEstratto(aRetEstr(nTrovate), aRighe(nRiga), nNumTrovati)    ' richiamo alla funzione di "supporto" denominata "LeggiNumeroEstratto"
        End If
    Next
    DoEvents
    Kill sFile
End Sub

Nel codice che hai gia scritto cicli su questo array e salvi ciascuna estrazione nell'archivio . addirittura se ti ricordi
fai pure il test sul numero estrazione per salvare solo le estrazioni nuove.

Esatto anche questo, lo avevamo visto assieme :

Codice:
Private Sub SalvaEstrazioni(aEstr() As STRUCT_ESTRAZIONE_10LOTTO, sDataUltimaEstrArchivio As String, sDataCorrente As String, NumEstr As Long, nTotInsert As Long)
    Dim k As Long
    Dim n As Long
    Dim i As Long
    Dim sFile As String
    Dim sData As String
    Dim nNumEst As Integer
    sFile = GetDirectoryAppData & "BaseDati10Elotto5M.Dat"    ' Setto il path del percorso dove andare a scrivere le estrazioni
    ReDim aNumeri(0)    ' Ridimensiono l'array aNumeri a 0 elementi
        
    If sDataUltimaEstrArchivio = sDataCorrente Then    ' Se l'ultima data rilevata in archivio è uguale alla data odierna
        For k = 1 To UBound(aEstr) ' Cicla l'array aEstr da 1 a quante estrazioni legge nella pagina html
            If aEstr(k).strctData.nNumEstrazione > NumEstr Then ' Se il numero estrazione della pagina html scaricata è maggiore dell'ultimo in archivio
            Call LeggiNumeriEstrazioni(aEstr(k), aNumeri)    ' Richiamo la funzione LeggiNumeriEstrazioni
            LblNumEstr.Caption = k ' Valorizzo la label Numero Estrazione che scorre man mano che vengono viste estrazioni
            LblOraEstr.Caption = GetOraEstrazione(k) ' Mostro l'ora dell'estrazione tramite la function GetoraEstrazione
            nTotInsert = nTotInsert + 1
            LblTotEstrAggiunte.Caption = Format(nTotInsert, "###,###")
            DoEvents
            Call SalvaEstrazioneDL(aNumeri, sDataCorrente, aEstr(k).strctData.nNumEstrazione, sFile) ' Richiamo la procedura che salva le estrazioni
            End If
        Next
    Else
        For k = 1 To UBound(aEstr) ' Cicla l'array aEstr da 1 a quante estrazioni legge nella pagina html
            Call LeggiNumeriEstrazioni(aEstr(k), aNumeri)    ' Richiamo la funzione LeggiNumeriEstrazioni
            LblNumEstr.Caption = k ' Valorizzo la label Numero Estrazione che scorre man mano che vengono viste estrazioni
            LblOraEstr.Caption = GetOraEstrazione(k) ' Mostro l'ora dell'estrazione tramite la function GetoraEstrazione
            nTotInsert = nTotInsert + 1
            LblTotEstrAggiunte.Caption = Format(nTotInsert, "###,###")
            DoEvents
            Call SalvaEstrazioneDL(aNumeri, sDataCorrente, aEstr(k).strctData.nNumEstrazione, sFile) ' Richiamo la procedura che salva le estrazioni
        Next
    End If
    
End Sub

In quello stesso ciclo va inserita una funzione a cui passare l'elemento corrente dell'array , questa funzione leggera
i dati di quell'elemento e ne valuterà la coerenza , ad esempio se i valori relativi ai numeri estratti sono a 0 mi pare
ovvio che quella estrazione non sia valida.

Qui' comincia il mio arenamento, tu dici di passare l'elemento corrente dell'array, e qui forse sbaglio:

Codice:
Private Sub SalvaEstrazioni(aEstr() As STRUCT_ESTRAZIONE_10LOTTO, sDataUltimaEstrArchivio As String, sDataCorrente As String, NumEstr As Long, nTotInsert As Long)
    Dim k As Long
    Dim n As Long
    Dim i As Long
    Dim sFile As String
    Dim sData As String
    Dim nNumEst As Integer
    sFile = GetDirectoryAppData & "BaseDati10Elotto5M.Dat"    ' Setto il path del percorso dove andare a scrivere le estrazioni
    ReDim aNumeri(0)    ' Ridimensiono l'array aNumeri a 0 elementi
        
    If sDataUltimaEstrArchivio = sDataCorrente Then    ' Se l'ultima data rilevata in archivio è uguale alla data odierna
        For k = 1 To UBound(aEstr) ' Cicla l'array aEstr da 1 a quante estrazioni legge nella pagina html
            If aEstr(k).strctData.nNumEstrazione > NumEstr Then ' Se il numero estrazione della pagina html scaricata è maggiore dell'ultimo in archivio
            Call LeggiNumeriEstrazioni(aEstr(k), aNumeri)    ' Richiamo la funzione LeggiNumeriEstrazioni
            LblNumEstr.Caption = k ' Valorizzo la label Numero Estrazione che scorre man mano che vengono viste estrazioni
            LblOraEstr.Caption = GetOraEstrazione(k) ' Mostro l'ora dell'estrazione tramite la function GetoraEstrazione
            nTotInsert = nTotInsert + 1
            LblTotEstrAggiunte.Caption = Format(nTotInsert, "###,###")
            DoEvents
            [COLOR="#FF0000"][B]If VerificaEstrazioni(aEstr(k)) then[/B][/COLOR] ' [B]è corretto passare così l'elemento corrente dell'array???[/B]
            Call SalvaEstrazioneDL(aNumeri, sDataCorrente, aEstr(k).strctData.nNumEstrazione, sFile) ' Richiamo la procedura che salva le estrazioni
            End If
        Next
    Else
        For k = 1 To UBound(aEstr) ' Cicla l'array aEstr da 1 a quante estrazioni legge nella pagina html
            Call LeggiNumeriEstrazioni(aEstr(k), aNumeri)    ' Richiamo la funzione LeggiNumeriEstrazioni
            LblNumEstr.Caption = k ' Valorizzo la label Numero Estrazione che scorre man mano che vengono viste estrazioni
            LblOraEstr.Caption = GetOraEstrazione(k) ' Mostro l'ora dell'estrazione tramite la function GetoraEstrazione
            nTotInsert = nTotInsert + 1
            LblTotEstrAggiunte.Caption = Format(nTotInsert, "###,###")
            DoEvents
            Call SalvaEstrazioneDL(aNumeri, sDataCorrente, aEstr(k).strctData.nNumEstrazione, sFile) ' Richiamo la procedura che salva le estrazioni
        Next
    End If
    
End Sub

Altri controlli si potrebbero fare , una volta che li hai pensati li implementi

Per me riuscire a far almeno questo sarebbe già tanto

Superati tutti i controlli previsti quindi questa fnzione tornerebbe True , torenrebbe false in caso contrario.

Questo mi è molto chiaro.

Tornando al famoso ciclo di cui paravo all'inizio tu inserirai al suo interno la chiamata a questa funzione passandogli
l'elemento corrente dell'array (precisamente la inserirai nel blocco che testa se il numero estrazione appartiene ad una estrazione non presente in archivio quando il test è superato) , se torna true salvi l'estrazione regolarmente , senno ne salvi una fittizia semplicemente creando un array
di 20 elmenti a 0 e usandolo per vaorizzare il parametro della funzione SalvaEstrazioniDL

Il primo pezzo di questa frase è chiaro, almeno credo. Per la seconda parte sono un po' indeciso e insicuro...

Forse potrebbe essere corretto fare un:

Codice:
ReDim aNumeriBlank(20)
aNumeriBlank(0) = "0"
aNumeriBlank(1) = "0"
aNumeriBlank(2) = "0"
aNumeriBlank(3) = "0"
aNumeriBlank(4) = "0"
aNumeriBlank(5) = "0"
aNumeriBlank(6) = "0"
aNumeriBlank(7) = "0"
aNumeriBlank(8) = "0"
aNumeriBlank(9) = "0"
aNumeriBlank(10) = "0"
aNumeriBlank(11) = "0"
aNumeriBlank(12) = "0"
aNumeriBlank(13) = "0"
aNumeriBlank(14) = "0"
aNumeriBlank(15) = "0"
aNumeriBlank(16) = "0"
aNumeriBlank(17) = "0"
aNumeriBlank(18) = "0"
aNumeriBlank(19) = "0"

o magari farlo con un ciclo...

Luigi mi hai lasciato solo forse troppo presto...:)
 
Ciao Moro , non ti ho lasciato troppo presto . Come ti ripeto i concetti li abbiamo visti tutti , sta a te riapplicarli ..
Chiamare la funzione in quel modo è corretto , diopende pure da come scrivi la funzione VerificaEstrazioni , e comunque sia devi gestire sia che torna true sia che torna false, tu per ora hai gestito solo il true , inoltre la stessa cosa va fatta pure nell'altro blocco quello che salva le estrazioni delle date successiver a quella odierna.
 
Ciao Luigi,
sono daccordo con Te, i concetti li abbiamo visti ed io devo riapplicarli.

Io credo di aver capito i concetti, e nel dettaglio, questo concetto della function. Il mio problema è che proprio non ho idea di come cavolo fare questo famoso test che dici Tu.

Mi hai detto che chiamare la funzione così puo andar bene, ok però dipende da come scrivo la funzione stessa : ecco il mio dramma, come la scrivo? In che modo vedo se è valida o meno? Tu qualche post fa mi hai detto :
ad esempio se i valori relativi ai numeri estratti sono a 0 mi pare ovvio che quella estrazione non sia valida.

A livello concettuale sono daccordissimo, ma come faccio a leggere quei valori di cui parli se ad esempio l'estrazione manca proprio??

Per il resto si è ovvio che va gestito sia il True che il False, nel mio esempio sopra c'è solo il true, e per l'array a 0 dei 20 elementi è corretto fare come sopra? o no?


In definitiva è proprio questo test(function) che non sono in grado di scrivere/fare...
 
se chiam ila funzione cosi :

if VerificaEstrazioni(aEstr(k)) then
...
else
...
end if

la funzione va dichiarata cosi

function VerificaEstrazioni(strctE as struct_estrazione_dl) as boolean

end if

struct_estrazione_dl non mi ricordo se il tipo udt si chiama cosi .. ovviamente devi usare il nome usato nel codice.


dentro la funzione con un ciclo devi leggere i numeri di quell 'estrazione , se sono corretti la funzione torna true senno false.


Dici come faccio se l'estrazione manca ?
Non ne ho idea .. so solo che se sei capace di individuarlo da essere umano devi essere capace di trasformarlo in codice applicando e trasferendo in modo appropriato i concetti visti gia..
Che ne so, forse puoi verificare se i vari numeri estrtazione sono consecutivi appena vedi che l'estrazione verificata in quel momento
non ha un numero consecutivo a quella precedente evidentemente ci sara un errore di estrazione mancante.
Ripeto i concetti li ho spiegati tutti , non è che io debba scrivere il codice per farti capire ,gia l'ho scritto quasi tutto io ... entrerei troppo nel dettaglio , tu mi diresti come sei bravo ho capito tutto spieghi come un professore (che non sono ) ma poi ti ritroveresti che a far da solo non sapresti nemmeno da dove iniziare...
Percio davvero se vuoi imparare sforzati ..

un saluto
 
Ciao Luigi,
certo che voglio imparare, altrimenti non rischierei ogni volta un va........o da Te con le mie richieste.

Dunque, si la funzione la chiamo in quel modo col :

Codice:
If VerificaEstrazioni(aEstr(k)) then 'Se torna True salvo normalmente le estrazioni
Call SalvaEstrazioneDL(aNumeri, sDataCorrente, aEstr(k).strctData.nNumEstrazione, sFile)
Else 'Altrimenti se False
ReDim aNumeriBlank(20)
aNumeriBlank(0) = "0"
aNumeriBlank(1) = "0"
aNumeriBlank(2) = "0"
aNumeriBlank(3) = "0"
aNumeriBlank(4) = "0"
aNumeriBlank(5) = "0"
aNumeriBlank(6) = "0"
aNumeriBlank(7) = "0"
aNumeriBlank(8) = "0"
aNumeriBlank(9) = "0"
aNumeriBlank(10) = "0"
aNumeriBlank(11) = "0"
aNumeriBlank(12) = "0"
aNumeriBlank(13) = "0"
aNumeriBlank(14) = "0"
aNumeriBlank(15) = "0"
aNumeriBlank(16) = "0"
aNumeriBlank(17) = "0"
aNumeriBlank(18) = "0"
aNumeriBlank(19) = "0"
Call SalvaEstrazioneDL(aNumeriBlank, sDataCorrente, aEstr(k).strctData.nNumEstrazione, sFile)
End If

La funzione l'avevo già dichiarata come indicato da Te, mancava solo il "as Boolean" ed è così:

Codice:
Private Function VerificaEstrazioni(strctEstr As STRUCT_ESTRAZIONE_10LOTTO) As Boolean
Dim l As Long
    For l = 1 To strctEstr.strctData.nNumEstrazione
        ' qui devo ancora capire come dire se ok o meno...
    Next
End Function

Qui Tu mi insegni che devo fare un ciclo e leggere i numeri dell'estrazione se corretti True, altrimenti è False

Per la mancante si può fare come dici Tu con la verifica dei consecutivi, ma non lo so fare per ora. Mi devo mettere sotto con gli studi prima di riuscirci...


Ciao ciao
 
function VerificaPresenzaNumeri (aNumeri() as integer)as boolean

dim bRet as boolean
dim k as integer

bRet = true ' per default il ritornno della funzione è True

for k =1 to ubound(aNumeri)
if aNumeri (k) = 0 then
bRet = false ' ho trovato un numero a 0 percio va tutto a puttane e la funzione deve tornare false usciamo pure dal ciclo tanto non serve verificare altri numeri ne basta uno per dire che non va bene
exit for
end if
next
VerificaPresenzaNumeri = bRet
end function


ecco un esempio di come si puo controllare la presenza di numeri validi in un array.
Naturalmente tu l'array aNumeri lo hai come membro di ciascuno degli elementi dell'array
delle estrazioni lette , l'esempio è solo per farti capire

Come si fa a vedere se i numeri estrazione sono consecutivi ?
Sempre nel famoso array che contiene le estrazioni lette tui hai un membro che si chiama NumEstr
cicli su l'array e verifichi se il valore NumEstr - 1 è uguale al num estr dell'elemento dell'array precedente
ovviamente il controllo va fatto dall'elemento 2 in poi .. l'elemento 1 non ha un altro elemento che viene prima.

ciao
 
Ciao Luigi,
grazie per l'esempio che hai postato...

Quindi stando un po' alla logica, sarebbe opportuno fare un doppio check chiamiamolo così, uno (come da Tuo esempio) che verifica se ci sono numeri estratti a 0 e un'altra function che verifichi se i numeri estrazione sono consecutivi o meno.

Al True di tutti e 2 questi check ho come ritorno true e salvo, altrimenti salvo la "finta" estrazione.


Ciao
 
ciao Moro, esattamente .. io ho fatto un esempio no ho mai visto in che modo ste famose estrazioni del 10 e lotto siano sbagliate mancanti ,
ho fatto delle ipotesi e ho ragionato con quelle.
Tu che hai effettivamente visto in che modo sono sbagliate puoi dire swe questi controlli vanno ben o no , altrimentri ne devi implementare qualcuno tu in base agli errori di lottomatica che hai realmete visto.
Ma la logica è quella , per default la funzione di verifica deve tornare true e percio valorizziamo subito una variabile a true , poi facciamo una serie di n controlli se solo uno va ale la variabile di cui sopra viene inesorabilmete portataa false.
Alla fine dei controlli la funzione ritorna il valore della variabile bRet.

I doppi controlli li puoi fare in un0ca funzione , devi aggiungere pero un parametro a quella che hai gia scritto , perchedevi poter controllare se il numEstr corrente - 1 è uguale al numEstr dell'estrazione precedente.
ripeto io ti ho dato dele linee guida poi nella fattispecie devi allinearti a cio che serve nel caso specifico
ciao
 
Ultima modifica di un moderatore:

Ultima estrazione Lotto

  • Estrazione del lotto
    martedì 21 gennaio 2025
    Bari
    78
    09
    70
    03
    23
    Cagliari
    32
    88
    30
    13
    45
    Firenze
    87
    23
    15
    39
    86
    Genova
    71
    48
    67
    59
    23
    Milano
    58
    50
    80
    85
    29
    Napoli
    90
    81
    79
    82
    62
    Palermo
    70
    33
    90
    05
    10
    Roma
    15
    71
    55
    85
    76
    Torino
    89
    09
    18
    33
    69
    Venezia
    44
    80
    82
    73
    58
    Nazionale
    80
    25
    13
    63
    17
    Estrazione Simbolotto
    Bari
    39
    36
    34
    14
    31
Indietro
Alto