L
LuigiB
Guest
Si ė la parte finalw del codice devi leggere l array e prendere i dati delle estrazioni e scriverle mano mano in archivio. Ciao
Follow along with the video below to see how to install our site as a web app on your home screen.
Nota: This feature may not be available in some browsers.
.......................
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
.........................
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
.......................
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
.........................
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...
If sDataUltimaEstr = sNuovaData Then
For k = 1 To UBound(aEstr)
Salvo solo le estrazioni con numeroEstr maggiore di queelo che avevo in archivio...
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
' ora siamo pronti per memorizzare i dati nelle variabili
idEstr = Val(av(0))
NumEstr = Val(av(1))
sDataUltimaEstr = av(2)
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
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
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
.......................
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
.........................
Call SalvaEstrazioni(aEstr, sDataUltimaEstr, sNuovaData, NumEstr) <---- Ho aggiunto NumEstr per portarmi in Salvaestrazioni anche il numero dell'ultima estr in archivio
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
For n = 1 To 20
Debug.Print aEstr(k).aNum(n)
Next
Dim sFile as String
sfile = GetDirectoryAppData & "BaseDati10Elotto5M.Dat"
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
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..:
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 ?