L
LuigiB
Guest
ciao Joe , la risposta è si funziona ma si deve anche vedere in che modalità vengono prelevati i dati
dalla fonte di aggiornamento.
Abbiamo due esempi reali ,il secondo come vedrai si divide ulteriormente in due
1) Potrebbe darsi che il sito ci offra la possibilità di scaricare l'intero archivio fino all'ultima estrazione disponibile
2) Potrebbe darsi che il sito ci consenta di prelevare siolo un estrazione alla volta.
a - l'estrazione va prelevata per data (caso lottomatica)
b- l'estrazione va prelevata per indice e anno (caso monopoli)
In funzione della modalità che ci offre il sito ci dobbiamo regolare.
Se scarichiamo l'intero file il giro funziona senza dubbio.
. scarico file
- memorizzo ultima data archivio mio
- inizio a leggere il file dalla fine quindi a ritroso
- appena individuo una data identica alla mia ultima so da quale estrazione devo iniziare l'aggiornamento
- quindi individuata tale estrazione esco dallla lettura a ritroso ed entro nella lettura "in avanti" a partire da quella
che ho individuato come prima delle estrazioni mancanti (cioe la successiva a quella che ho come mia ultima o addirittura la prima del file scaricato se i
non avevo estrazioni in archivio loocale) poi da li continu a leggere il file fino alla fine e ad aggiungere nell'archivio locale tutte le estrazioni lette
se al contratrio il sito ci da solo la possibilita di scaricare un 'estrazione alla volta ovvero siamo noi che invece preferiamo scaricarne una alla volta
allora la prima cosa da fare è memorizzare data ed indice della nostra ultima.
Se il sito ci fa scaricare per data noi non sappiamo quale sara la prossima data di estrazione, non possiamo basarci sul giorno della settimana
perche ci sono casi in ci le estrazioni avvengono in giorni diversi dai soliti mar - giov -sab.percio dobbiamo cercare estrazioni in tutte le date
possibili a partire dal giorno successivo alla data che conosciamo fino alla data corrente, con la data faccio la query sul sito , se la data corrisponde effettivamernte
ad una estrazione quella estrazione la leggo e la salvo nell'archivio locale , senno passo alla data successiva fino ad arrivare alla data corrente al termine della routine.
Se il sito ci fa prelevare per anno indice , è piu facile iniziamo a costruire le link a partire dall'ltimo anno che abbiamo in archivio quindi
avremo un ciclo esterno che ha come limiti l'ultimo anno in archivio e l'anno corrente nel momento dell'aggiornamento.
In un ciclo interno a questo cicleremo l'indice dell'estrazione .
Questo ciclo ha come limiti il numero successivo all'indice dello stesso anno relativo alla nostra ultima estrazione e un numero arbitrario sufficientemente alto per esempio 300.
Ogni volta costruiamo la link , se la link corrisponde effettivamente ad una estrazione la salviamo nel nostro archivio , senno vuol dire che il ciclo indice è finito non esistono altre estrazioni.
in quell'anno (ricordiamoci che stiamo dentro un altro ciclo quellodell'anno)
La cosa importante è che una volta uscito dal ciclo dell'indice , il limite innferiore deve ripartire da 1,
Facciamo il caso che siamo al 10 gennaio 2016 , casualità date le vacanze avevamo aggiornato l'ultima volta il 10 dicembre dell'anno prima.
Quindi l'ultima estrazione in possesso era 2015-148 .
Stilizzato il ciclo si dovrebbe presentare cosi.
LimiteInffIndice = 149
For anno = 2015 to 2016
for indice = LimiteInffIndice to 300
' codice per scaricare l'estrazione e salvarla in locale
next
LimiteInffIndice = 1
next
Io per verbosità ho riscritto il tutto sottolineando alcuni suggerimenti. ma il tuo giro funziona benissimo , forse è solo superfluo eseguire piu volte il punto E in quanto tutte le estrazioni successive
all'ultima che avevamo sono nuove non dobbiamo piu confrontare le date una volta che abbiamo individuato la prima mancante.
dalla fonte di aggiornamento.
Abbiamo due esempi reali ,il secondo come vedrai si divide ulteriormente in due
1) Potrebbe darsi che il sito ci offra la possibilità di scaricare l'intero archivio fino all'ultima estrazione disponibile
2) Potrebbe darsi che il sito ci consenta di prelevare siolo un estrazione alla volta.
a - l'estrazione va prelevata per data (caso lottomatica)
b- l'estrazione va prelevata per indice e anno (caso monopoli)
In funzione della modalità che ci offre il sito ci dobbiamo regolare.
Se scarichiamo l'intero file il giro funziona senza dubbio.
. scarico file
- memorizzo ultima data archivio mio
- inizio a leggere il file dalla fine quindi a ritroso
- appena individuo una data identica alla mia ultima so da quale estrazione devo iniziare l'aggiornamento
- quindi individuata tale estrazione esco dallla lettura a ritroso ed entro nella lettura "in avanti" a partire da quella
che ho individuato come prima delle estrazioni mancanti (cioe la successiva a quella che ho come mia ultima o addirittura la prima del file scaricato se i
non avevo estrazioni in archivio loocale) poi da li continu a leggere il file fino alla fine e ad aggiungere nell'archivio locale tutte le estrazioni lette
se al contratrio il sito ci da solo la possibilita di scaricare un 'estrazione alla volta ovvero siamo noi che invece preferiamo scaricarne una alla volta
allora la prima cosa da fare è memorizzare data ed indice della nostra ultima.
Se il sito ci fa scaricare per data noi non sappiamo quale sara la prossima data di estrazione, non possiamo basarci sul giorno della settimana
perche ci sono casi in ci le estrazioni avvengono in giorni diversi dai soliti mar - giov -sab.percio dobbiamo cercare estrazioni in tutte le date
possibili a partire dal giorno successivo alla data che conosciamo fino alla data corrente, con la data faccio la query sul sito , se la data corrisponde effettivamernte
ad una estrazione quella estrazione la leggo e la salvo nell'archivio locale , senno passo alla data successiva fino ad arrivare alla data corrente al termine della routine.
Se il sito ci fa prelevare per anno indice , è piu facile iniziamo a costruire le link a partire dall'ltimo anno che abbiamo in archivio quindi
avremo un ciclo esterno che ha come limiti l'ultimo anno in archivio e l'anno corrente nel momento dell'aggiornamento.
In un ciclo interno a questo cicleremo l'indice dell'estrazione .
Questo ciclo ha come limiti il numero successivo all'indice dello stesso anno relativo alla nostra ultima estrazione e un numero arbitrario sufficientemente alto per esempio 300.
Ogni volta costruiamo la link , se la link corrisponde effettivamente ad una estrazione la salviamo nel nostro archivio , senno vuol dire che il ciclo indice è finito non esistono altre estrazioni.
in quell'anno (ricordiamoci che stiamo dentro un altro ciclo quellodell'anno)
La cosa importante è che una volta uscito dal ciclo dell'indice , il limite innferiore deve ripartire da 1,
Facciamo il caso che siamo al 10 gennaio 2016 , casualità date le vacanze avevamo aggiornato l'ultima volta il 10 dicembre dell'anno prima.
Quindi l'ultima estrazione in possesso era 2015-148 .
Stilizzato il ciclo si dovrebbe presentare cosi.
LimiteInffIndice = 149
For anno = 2015 to 2016
for indice = LimiteInffIndice to 300
' codice per scaricare l'estrazione e salvarla in locale
next
LimiteInffIndice = 1
next
Io per verbosità ho riscritto il tutto sottolineando alcuni suggerimenti. ma il tuo giro funziona benissimo , forse è solo superfluo eseguire piu volte il punto E in quanto tutte le estrazioni successive
all'ultima che avevamo sono nuove non dobbiamo piu confrontare le date una volta che abbiamo individuato la prima mancante.
Ultima modifica di un moderatore: