Novità

AIUTO , SE POTETE, AGGIORNAMENTO 10ELOTTO5MIN

Si ė la parte finalw del codice devi leggere l array e prendere i dati delle estrazioni e scriverle mano mano in archivio. Ciao
 
Ciao Luigi,

non so perchè, ma mi sa che mi devi aiutare...

allora tornando alla parte di codice da cui richiamare la sub " SalvaEstrazioni" io ho fatto così:

Codice:
.......................
  ReDim aEstr(0) As STRUCT_ESTRAZIONE_10LOTTO
        Call LeggiFileHtmlTornaEstrazioni(sFileLocal, aEstr, Year(sNuovaData)) ' richiamo la funzione "LeggiFileHtmlTornaEstrazioni"
        
        Call SalvaEstrazioni(aEstr, sDataUltimaEstr, sNuovaData) <------- Ho aggiunto questa riga
        
        sNuovaData = DateAdd("d", 1, sNuovaData) ' aggiunge un giorno e ottiene una nuova data
.........................

poi per la sub invece, non capisco che parametro passare per dirgli :

Codice:
Private Sub SalvaEstrazioni(aEstr() As STRUCT_ESTRAZIONE_10LOTTO, sDataUltimaEstrArchivio As String, sDataCorrente As String)
   Dim k As Long

   For k = 1 To UBound(aEstr) 'Qui fa un ciclo che va da 1 a 288 per ogni html scaricato
     If aEstr(k).strctData.GG = <------------qui non capisco come dirgli ( se la data che hai visto nei file scaricati è uguale all'ultima in archivio)
        If aEstr(k).strctData.nNumEstrazione > <------------qui non capisco come dirgli ( se il numero estrazione è maggiore di quello che c'e in archivio)
     
        SalvaestrazioneDL( qui dovrei mettere i parametri da passare per scrivere in archivio l'estrazione)
        
        End If
     End If
   
  Next
   
End Sub

Almeno la strada che vorrei intraprendere puo' essere corretta?


Non è semplice con tutti questi parametri e function dichiarate.....


Scusami, ma non è semplice per me!
 
ciao Moro .. eheh ti lamenti che no è semplice con tutte queste sub e function .. pensa se non ci fossero .. toccava scriverle .-)
Secondo me sei solo spaesato a vedere tutto questo codice , in relata non ti devi preoccupare le sub ci stanno funzionano e quindi possiamo non considerarle per concentrarci
sul nuovo problema.

Qui per esempio hai fatto benissimo, dovevi fare proprio cosi.

Codice:
.......................
  ReDim aEstr(0) As STRUCT_ESTRAZIONE_10LOTTO
        Call LeggiFileHtmlTornaEstrazioni(sFileLocal, aEstr, Year(sNuovaData)) ' richiamo la funzione "LeggiFileHtmlTornaEstrazioni"
        
        Call SalvaEstrazioni(aEstr, sDataUltimaEstr, sNuovaData) <------- Ho aggiunto questa riga
        
        sNuovaData = DateAdd("d", 1, sNuovaData) ' aggiunge un giorno e ottiene una nuova data
.........................

inziamo a chiederci a che servono i parametri che passiamo alla sub SalvaEstrazioni.

aEstr() -- > è l'array che contiene le estrazioni lette dalla pagina html
sDataUltimaEste ---> è la data dsell'ultima estrazione che avevamo in archivio prima dell'aggiornamento
sNuovaData --> è la data che mano mano calcoliamo e che all'inizio assume il valore di sDataUltimaEste poi durante il ciclo do cambia

benissimo , quando la sub SalvaEstrazioni inizia il suo compito ha a disposizione questi valori ,con queste informazioni come facciamo a sapere se la nuova data è uguale all'ultima che avevamo ?
La rispsosta è talmete semplice ...

Quindi il flusso del codice puo prendere subito un primo bivio

Le date sono uguali ? Si --> Faccio un ciclo leggo aEstr e salvo solo le estrazioni con numeroEstr maggiore di quello che avevo in archivio
Le date sono uguali ? NO --> Faccio un ciclo leggo aEstr e salvo tutte o le estrazioni


Secondo problema passare i dati a SalvaEstrazioneDL
La prima cosa da fare è chedersi come i dati questa funzione ? Come gli si passano i numeri estratti ?
Con un array ! allora dato che tu i numeri ce li hai nell'elemento dell'array aEstr sul quale stai ciclando in quel momento
devi solo ricreare un array copiando i dati da quello che hai e passarlo a quell'altro che poi passerai alla funzione.

Scusami se quest'ultimo punto te lo spiego solo in teoria ad ogni modo lo faccio anche perche spremendoti le cose ti rimarrano impresse poi avevo detto a me non interessa se l'aggiornamento non funziona piu ..
Ciao ...
 
Fai bene Luigi,

io non voglio il codice bello e pronto, non mi farebbe capire e soprattutto arrivare da solo alla soluzione.

Mi interessa capirne il meccanismo e averlo si funzionante, ma fatto con le mie mani ed ovviamente, fatto dai tuoi input e "piccoli" aiuti :)

Il flusso se devo essere sincero mi era già abbastanza chiaro, non capisco come fare il check sul "numeroestr maggiore" o meglio, qual è il parametro da passare...

aEstr() -- > è l'array che contiene le estrazioni lette dalla pagina html
sDataUltimaEste ---> è la data dsell'ultima estrazione che avevamo in archivio prima dell'aggiornamento
sNuovaData --> è la data che mano mano calcoliamo e che all'inizio assume il valore di sDataUltimaEste poi durante il ciclo do cambia

Perfetto questo lo avevo fatto e mi è chiaro direi, poi :

...benissimo , quando la sub SalvaEstrazioni inizia il suo compito ha a disposizione questi valori ,con queste informazioni come facciamo a sapere se la nuova data è uguale all'ultima che avevamo ?
La rispsosta è talmete semplice ...

Quindi il flusso del codice puo prendere subito un primo bivio


Qui mi iniziano i dubbi:

Le date sono uguali ? Si --> Faccio un ciclo leggo aEstr e salvo solo le estrazioni con numeroEstr maggiore di quello che avevo in archivio...

Per le date mi viene in mente una cosa del tipo :

Codice:
If sDataUltimaEstr = sNuovaData Then

Per il ciclo pensavo :

Codice:
For k = 1 To UBound(aEstr)


a questo punto Tu dici:

Salvo solo le estrazioni con numeroEstr maggiore di queelo che avevo in archivio...

Qui mi impappino e non capisco come passargli questo parametro

poi subito dopo devo richiamare il SalvaestrDL almeno credo.

Alla fine mi dovrebbe venir fuori una routine di questo tipo, sempre se ho capito bene il tutto...

Codice:
Private Sub SalvaEstrazioni(aEstr() As STRUCT_ESTRAZIONE_10LOTTO, sDataUltimaEstr As String, sNuovaData As String)
   Dim k As Long

   If sDataUltimaEstr = sNuovaData Then
        For k = 1 To UBound(aEstr) 'cicla da 1 a 288
          If "estrazione con numero maggiore di quello che avevo in archivio" Then
            SalvaEstrazioneDL(parametri da passare)
          End If
        Next
   Else
        For k = 1 To UBound(aEstr) 'cicla da 1 a 288
        SalvaEstrazioneDL(parametri da passare)
        Next
   End If
   
   
End Sub
 
Ultima modifica:
eheh tutto ok per ora , bravo ! Ti stai perdendo in un bicchier d'acqua... è vero o no che all'inizio della nostra routine ci simamo memorizzati determinati valori ?
Lo avevamo fatto perche sapevamo che ci sarebbero serviti .. che valori erano ?
Ora dobbiamo usarli.
quindi sapendo che ogni elemento dell'array aEstr ha dei valori riferiti ad un estrazione ( numeri data e numestr ) noi dobbbiamo confrontare il numestr membro dell'array

con una certa variabile che ci eravamo memorizzati all'inizio insieme alla data... rifletti e vedrai che ci arrivi.

ciao
 
Ciao Luigi,

si è vero all'inizio ci siamo memorizzati determinati valori, che come dici Tu, sarebbero serviti dopo...e credo che Tu ti riferisca ad :

Codice:
' ora siamo pronti per memorizzare i dati nelle variabili
    
    idEstr = Val(av(0))
    NumEstr = Val(av(1))
    sDataUltimaEstr = av(2)

Tu dici che mi sto perdendo in un bicchier d'acqua, è vero. Comunque voglio cercare di capire...

Allora tu dici:
sapendo che ogni elemento dell'array aEstr ha dei valori riferiti ad un estrazione ( numeri data e numestr ) noi dobbbiamo confrontare il numestr membro dell'array

Da quel che mi hai fatto capire il ciclo for dovrebbe essere impostato correttamente:
Codice:
Private Sub SalvaEstrazioni(aEstr() As STRUCT_ESTRAZIONE_10LOTTO, sDataUltimaEstr As String, sNuovaData As String)
   Dim k As Long

   If sDataUltimaEstr = sNuovaData Then
        For k = 1 To UBound(aEstr) 'cicla da 1 a 288
          Bicchiere d'acqua per me !
            SalvaEstrazioneDL(altro bicchiere d'acqua)
          End If
        Next
   Else
        For k = 1 To UBound(aEstr) 'cicla da 1 a 288
        SalvaEstrazioneDL(altro bicchiere d'acqua)
        Next
   End If

End Sub

non capisco come fare a richiamare quella certa variabile memorizzata in precedenza assieme alla data, sto riflettendo ma attualmente ancora non ci sono arrivato...


Ciao
 
Rifletti sulle cose che abbiamo gia fatto , decontestualizzale e una volta capiti i concetti riapplicali.
L'aggiornamento del 10 e lotto dipende da te ..ciao
 
Ciao Luigi,

va bene, proveò a fare come dici Tu, probabilmente ho difficoltà a comprendere bene come si richiamano valori con sintassi : NomeVariabile.NomeMembro, almeno credo.


Farò tutti i tentativi dovuti, e spero di riuscire!


Grazie comunque per tutto le info e aiuto che mi hai dato!


Ciao
 
for k = 1 to ubound(aEstr)
debug.print aEstr(k).strctData.nNumEstrazione
next

provalo in vb al posto del ciclo giusto per vedere cosa scrive ....


secondo suggerimento

nella procedura SalvaEstrazioni NON hai la variabile che ci eravamo memorizzati all'inizio , come fare per portare quella variaile presente nella procedura principale Init.... dentro SalvaEstrazioni ? Semplice nello stesso modo in cui ci siamo portati appresso la data ...

ciao
 
Ultima modifica di un moderatore:
Ciao Luigi,

allora io ho provato a infilare quel ciclo for all'interno del mio Salvaestrazioni :

Codice:
Private Sub SalvaEstrazioni(aEstr() As STRUCT_ESTRAZIONE_10LOTTO, sDataUltimaEstr As String, sNuovaData As String)
   Dim k As Long

   For k = 1 To UBound(aEstr)
   Debug.Print aEstr(k).strctData.nNumEstrazione
   Next
   
End Sub

sarò in errore io, ma a me non mi scrive proprio nulla, semplicemente la routine fa tutto il suo ciclo fino alla fine e basta...

Ovviamente questa routine viene richiamata da :

Codice:
.......................
  ReDim aEstr(0) As STRUCT_ESTRAZIONE_10LOTTO
        Call LeggiFileHtmlTornaEstrazioni(sFileLocal, aEstr, Year(sNuovaData)) ' richiamo la funzione "LeggiFileHtmlTornaEstrazioni"
        
        Call SalvaEstrazioni(aEstr, sDataUltimaEstr, sNuovaData) <------- Ho aggiunto questa riga
        
        sNuovaData = DateAdd("d", 1, sNuovaData) ' aggiunge un giorno e ottiene una nuova data
.........................

Per curiosità , a Te mostra qualcosa il debug.print ??

Sbaglio io qualcosa??


Thanks!
 
Ciao Luigi,

ho delle news, almeno credo!

Penso di esserci quasi arrivato, allora intanto io ho fatto in questo modo:

Codice:
Call SalvaEstrazioni(aEstr, sDataUltimaEstr, sNuovaData, NumEstr) <---- Ho aggiunto NumEstr per portarmi in Salvaestrazioni anche il numero dell'ultima estr in archivio

poi nella sub ho fatto:

Codice:
Private Sub SalvaEstrazioni(aEstr() As STRUCT_ESTRAZIONE_10LOTTO, sDataUltimaEstrArchivio As String, sDataCorrente As String, NumEstr As Long)
   Dim k As Long

   If sDataUltimaEstrArchivio = sDataCorrente Then
        For k = 1 To UBound(aEstr)
            If aEstr(k).strctData.nNumEstrazione > aEstr(NumEstr).strctData.nNumEstrazione Then
            Debug.Print aEstr(k).strctData.nNumEstrazione 
            Debug.Print aEstr(NumEstr).strctData.nNumEstrazione
            End If
        Next
    End If
   
End Sub

Con "Debug.Print aEstr(k).strctData.nNumEstrazione" ottengo il numero estrazione a partire dalla successiva di quella che ho in archivio

Con "Debug.Print aEstr(NumEstr).strctData.nNumEstrazione" ottengo il numero estrazione ultima in archivio

Poi, successivamente per poter estrapolare i numeri dall'array aNum ho inserito questo ciclo:
Codice:
For n = 1 To 20
     Debug.Print aEstr(k).aNum(n)
Next

Con "Debug.Print aEstr(k).aNum(n)" ottengo i numeri estratti contenuti nell'array

Ora credo che mi manchi il passo di dare il "tutto" a SalvaEstrazioneDL

Leggendo un po' la guida spazioscript fatta da Te, credo che per prima cosa bisogna dichiarare il percorso del file dove salvare:

pensavo a qualcosa tipo :
Codice:
Dim sFile as String

sfile = GetDirectoryAppData & "BaseDati10Elotto5M.Dat"

Che ne pensi? Mi sono impegnato a dovere :) ?
 
Ultima modifica:
ciao Moro , bravissimo ! Mi compiaccio... il debug.print serve per scrivere nella finestra di debug che se non è aperta ovviamente non si vede nulla.. devi attivarla dal menu VISUALIZZA-->FINESTRA IMMEDIATA.
L'istruzione debug.print serve solo per vedere le cose in debug non è necessaria nel codice che serve a noi , era solo un test una conferma per farti vedere cosa abbiamo nell'array.
Si ora rimane da confezionare epassare i dari a SalvaEstrazioneDL , il file non lo devi inventare tu , deve combaciare con il file dell'archivio
che si trova nella directory dei dati del programma e che ha un nome specifico.
Come fare a sapere la directory del programma ? C'è una funzione che te lo dice .. ora non ricordo il nome GetDirectory qualcosa .. non mi ricordo cercala tra le funzioni dello spazioscript ,in pratica il percorso del file lo devi costruire unendo il risultato di questa funzione al nome del file che invece è noto BaseDati10eLotto5m.dat .. o insomma quello che ti avevo scritto , sono in ufficio e non mik ricordo.

Sei ad un passo dal risultato .. bravo !
Ciao
 
ah ecco non mi ero accorto .. bravo il nome del file si costruisce proprio in quel modo .. poi devi copiare i numeri , la data e il numero estr
dall'array ai parametri che passerai a salvaEstrazioniDL.

ciao
 
c'è solo un errore in questa riga

If aEstr(k).strctData.nNumEstrazione > aEstr(NumEstr).strctData.nNumEstrazione Then


il concetto è esatto .. solo che tu devi confrontare i numeri delle nuove estrazioni presenti nell'array con quello che avevi e che ti sei portato appresso ..la linea sopra non è che facciaquesto .. come va corretta ?
 
Buongiorno Luigi,

non capisco bene dove sia l'errore nella riga :

If aEstr(k).strctData.nNumEstrazione > aEstr(NumEstr).strctData.nNumEstrazione Then

forse l'errore è il fatto che aEstr(k) conteggi sempre da 1 a 288 e non dall'ultima rilevata in archivio a 288....

E se io facessi una cosa di questo tipo?

Codice:
 If sDataUltimaEstrArchivio = sDataCorrente Then <--- se la data è uguale all'ultima in archivio
        For k = aEstr(NumEstr).strctData.nNumEstrazione To UBound(aEstr) <--  cicla dall'estrazione ultima che trovi a 288

sarebbe percorribile la strada o no?
 
ahahah buona idea questa .. io non intendevo questo anche se potrebbe funzionare , solo che eventualmente facessi cosi devi partire da numestr +1 ...
numestr gia ce l'hai tra le estrazioni in archivio.
io dicevo di confrontare i numestr nell'array con il numestr che ti eri portato appresso.
 
il numestr che mi porto appresso lo ricavo da : aEstr(NumEstr).strctData.nNumEstrazione

i numestr nell'array come cavolo li ricavo ? qui è l'inghippo allora....
 
allora ieri hai inserito un nuovo parametro nella funzione salva estrazioni.
Quel parametro contiene l'ultimo numestr che avevi in archivio.
Invece nell'array che contiene tutte le estrazioni lette da quella singola pagina hai per ogni elemento dell'array una seiri di valori.
Quindi ogni elemento dell'array nel membro NumEstr di strctData contiene un numero che si riferisce al numero estrazione di quella estrazione.
Questo valore va confrontato con numestr che ti sei portato appresso , se è superiore lo salòvi senno no , e il tutto solo nel vcaso le due date siano uguali
 
Ciao Luigi,

sto cercando di capire la Tua spigazione, e devo analizzarla passo passo..:

allora ieri hai inserito un nuovo parametro nella funzione salva estrazioni.

Si esatto, ieri ho aggiunto il parametro "NumEstr As Long" alla sub salvaestrazioni


Quel parametro contiene l'ultimo numestr che avevi in archivio.

perfetto, infatti mi torna l'ultima estr che vede in archivio, fin qui ok!

Invece nell'array che contiene tutte le estrazioni lette da quella singola pagina hai per ogni elemento dell'array una seiri di valori.

qui non mi riesco a capacitare di quale array stiamo parlando ?? aEstr() ???

Quindi ogni elemento dell'array nel membro NumEstr di strctData contiene un numero che si riferisce al numero estrazione di quella estrazione.

qui mi sembra di capire che Tu ti riferisca a : aEstr().strctData.nNumEstrazione ??

Questo valore va confrontato con numestr che ti sei portato appresso , se è superiore lo salòvi senno no , e il tutto solo nel vcaso le due date siano uguali

infine tu intendi dire che questo valore (a me sconosciuto per ora) va canfrontato con "NumEstr As Long" ( che mi ero portato dietro dall'inizio), ovviamente a condizione che sià più alto e che le date siano uguali...


Non so perchè ma mi sentirò dire di nuovo che mi sto perdendo in un bicchier d'acqua...vero ?
 
Ciao Luigi,

sto cercando di capire la Tua spigazione, e devo analizzarla passo passo..:



Si esatto, ieri ho aggiunto il parametro "NumEstr As Long" alla sub salvaestrazioni




perfetto, infatti mi torna l'ultima estr che vede in archivio, fin qui ok!



qui non mi riesco a capacitare di quale array stiamo parlando ?? aEstr() ???


ovvio !!! Quali altri array ci sono ?




qui mi sembra di capire che Tu ti riferisca a : aEstr().strctData.nNumEstrazione ??

ovvio .. anche questo




infine tu intendi dire che questo valore (a me sconosciuto per ora) va canfrontato con "NumEstr As Long" ( che mi ero portato dietro dall'inizio), ovviamente a condizione che sià più alto e che le date siano uguali...


Non so perchè ma mi sentirò dire di nuovo che mi sto perdendo in un bicchier d'acqua...vero ?

esattamente :-)
 

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