Novità

AIUTO , SE POTETE, AGGIORNAMENTO 10ELOTTO5MIN

ah .. molto strano .. funzionano allo stesso modo ... vedi se le proprieta min e max di quella xp sono di default 0 100 .. senno ci credo che non va ..se dovessi trovarle 0 100 allora metti un doevents dopo la valorizzazzione della proprietà value.
 
Avevi ragione Luigi, il valore max era a 32697...mah non capisco il perchè.

Ora è apposto!

Adesso direi che mi manca la funzioncina che fa scorrere le date, i numeri estrazioni, e l'ora compreso il totale estrazioni...

Anche questo passaggio non so perchè ma mi farà piangere sangue...vero Luigi?
 
ciao Moro , non credo , si tratta di cose semplicissime.
Intendi dire di far scorrere le date e i numeri metre è in aggiornamento ?
il concetto è uguale a quelllo della progressbar, mano mano che il ciclo itera
tu ad ogni passaggio del ciclo vai a valorizzare le label sul form.
La data ce l'hai gia , la devi solo mostrare , anche il numero di estrazione ce l'hai , quello che ti manca è l'orario
pero sappiamo in numestrazione che tutti i giorni va da 1 a 288
siccome è noto che le estrazioni sono una ogni 5 minuti tu adesso sai che mi fai ?
Una bella funzioncina che riceve per parametro un numero da 1 a 288 e ritorna una stringa con l'orario.
Si tratta solo di implementare una semplice formula matematica per trovare l'ora ...
dai ... Ciao
 
Ciao Luigi, si intendo proprio quello, far scorrere le date ed i numeri man mano che aggiorna.

Anche per le label data e numestr devo creare una function da inserire poi nel ciclo do?

Per l'altra function, ehm.. non mi è chiarissimo comunque ci provo!

Tu vuoi una funzione che riceve un numero come parametro e lei mi torna la stringa con l'ora???

Una semplice formula matematica si...ma quale ?? :) :)


Tu mi metti sempre sotto pressione! :)
 
Ciao Moro , no per le label le puoi valorizzare dentro il ciclo do ..loop prima del loop , ricordati di inserire l'istruzione doevents
dopo la valorizzazione delle label in pratica immediatamente prima del loop.
Riguardo la funzione che ti ho chiesto deve essere cosi

Function GetOraEstrazione (nNumEstr as integer) as string
' qui in mezzo il codice
' sapendo l'ora in cui iniziano le estrazioni , sapendo che ce n'è una ogni 5
' minuti questa funzione riceve un numero da 1 a 288
' e ritorna l'orario di estrazione dalle 00.00 alle 24.00

end function

cioe se io ti chiedo l'estrazione numero 50 a che ora si tiene tu a mente o con carta e penna come faresti
a dirmi a che ora capita l'estrazione richiesta ?
Bene fallo a mente e poi trasformarlo in codice è semplicissimo

ciao
 
Ultima modifica di un moderatore:
Allora Luigi, c'è qualcosa che non mi torna...mi spiego :

Con il codice :

Codice:
Do While Format(sNuovaData, "yyyymmdd") <= Format(Now, "yyyymmdd")

        sLinkHtml = "http://www.lottomaticaitalia.it/10elotto/estrazioni-e-vincite/popup-pdf/estrazioni-giorno.html?data=" & Format(sNuovaData, "yyyymmdd")    ' costruisce il link base
        sFileLocal = App.Path & "\Temp\" & Format(sNuovaData, "yyyymmdd") & ".html"    ' costruuisce il percorso per il file in locale
        Call DownloadFromWeb(sLinkHtml, sFileLocal)    ' scarica il file

        ReDim aEstr(0) As STRUCT_ESTRAZIONE_10LOTTO
        Call LeggiFileHtmlTornaEstrazioni(sFileLocal, aEstr, Year(sNuovaData))    ' richiamo la funzione "LeggiFileHtmlTornaEstrazioni"

        Call SalvaEstrazioni(aEstr, sDataUltimaEstr, sNuovaData, NumEstr)    ' richiamo la funzione "SalvaEstrazioni"

        sNuovaData = DateAdd("d", 1, sNuovaData)    ' aggiunge un giorno e ottiene una nuova data
        
        ValUsed = ValUsed + 1 'Valorizza il valore usato 
        
        ProgBarXP1.Value = PercentualeCorrente(ValUsed, ValTot) ' Incrementa la progressbar ad ogni interazione
        
        [COLOR="#FF0000"][B]LlbDataAggiunta.Caption = sNuovaData  <---- Perfetto mostra la data che man mano cambia, proprio come volevo[/B][/COLOR]
        
        If Format(sNuovaData, "yyyymmdd") > Format(Now, "yyyymmdd") Then '----------------
        LlbDataAggiunta.Caption = Format(Now, "dd/mm/yyyy") ' Se la data è successiva alla odierna allora mostra quella di oggi
        End If
        
        [COLOR="#FF0000"][B]LblNumEstr.Caption = NumEstr  <----- La label mostra sempre 288 e non "scorre" come dovrebbe...[/B][/COLOR]
        
        If Format(sNuovaData, "yyyymmdd") > Format(Now, "yyyymmdd") Then '------------------
            MsgBox "Aggiornamento completato", vbInformation, "Informazione" ' Mostra messaggio di fine aggiornamento
        End If

[COLOR="#FF0000"][B]        DoEvents <---- Inserito DoEvents come mi hai suggerito Tu....[/B][/COLOR]

Loop

Mi sai spiegare il perchè con la data va e con il numero estrazione no???

Per quel che riguarda invece la function GetOraEstrazione ho fatto così, ma Ti anticipo che non mi funziona.. :(

Codice:
Do While Format(sNuovaData, "yyyymmdd") <= Format(Now, "yyyymmdd")

        sLinkHtml = "http://www.lottomaticaitalia.it/10elotto/estrazioni-e-vincite/popup-pdf/estrazioni-giorno.html?data=" & Format(sNuovaData, "yyyymmdd")    ' costruisce il link base
        sFileLocal = App.Path & "\Temp\" & Format(sNuovaData, "yyyymmdd") & ".html"    ' costruuisce il percorso per il file in locale
        Call DownloadFromWeb(sLinkHtml, sFileLocal)    ' scarica il file

        ReDim aEstr(0) As STRUCT_ESTRAZIONE_10LOTTO
        Call LeggiFileHtmlTornaEstrazioni(sFileLocal, aEstr, Year(sNuovaData))    ' richiamo la funzione "LeggiFileHtmlTornaEstrazioni"

        Call SalvaEstrazioni(aEstr, sDataUltimaEstr, sNuovaData, NumEstr)    ' richiamo la funzione "SalvaEstrazioni"

        sNuovaData = DateAdd("d", 1, sNuovaData)    ' aggiunge un giorno e ottiene una nuova data
        
        ValUsed = ValUsed + 1
        
        ProgBarXP1.Value = PercentualeCorrente(ValUsed, ValTot)
        
        LlbDataAggiunta.Caption = sNuovaData
        
        If Format(sNuovaData, "yyyymmdd") > Format(Now, "yyyymmdd") Then
        LlbDataAggiunta.Caption = Format(Now, "dd/mm/yyyy")
        End If
        
        LblNumEstr.Caption = NumEstr
        
        [COLOR="#FF0000"][B]LblOraEstr.Caption = GetOraEstrazione(NumEstr)[/B][/COLOR]
        
        If Format(sNuovaData, "yyyymmdd") > Format(Now, "yyyymmdd") Then
            MsgBox "Aggiornamento completato", vbInformation, "Informazione"
        End If

        DoEvents

    Loop

La function invece contiene questo...

Codice:
Function GetOraEstrazione(nNumEstr As Integer) As String
Dim nNumEstr(288) 'Dimensiono la variabile con numero 288 max valore
Dim h, m ' Dichiaro le variabili ore e minuti
Dim i ' Dichiaro la variabile i
For h = 0 To 23 'Ciclo le ore dalle 00:00 alle 23:00
For m = 5 To 60 Step 5 'Ciclo i minuti da 5 a 60 con step di ogni 5 minuti
i = i + 1 ' Incremento il valore della variabile i
If m = 60 Then ' Se i minuti arrivano a 60
nNumEstr(i) = Format2(h + 1) & ":00" ' Setto le ore con :00
Else ' Altrimenti
nNumEstr(i) = Format2(h) & ":" & Format2(m) 'Setto i minuti
End If ' Fine condizione
Next 'Continua ciclo
Next 'Continua ciclo
nNumEstr(i) = "23:59" 'Ultima estrazione
End Function

Ho provato in debug e mi torna : Tipo non corrispondente per l'argomento by ref , evidenziandomi il LblOraEstr.Caption = GetOraEstrazione(NumEstr)

Non so se è giusto fare così, ma almeno ci ho provato :)
 
Ultima modifica:
ciao Moro , l'errore di Tipo Non Corrispondente capita quando una procedura si aspetta un parametro fi un tipo e invece ne riceve uno di un altro tipo.
Nella fattispecie :
GetOraEstrazione(nNumEstr As Integer)
si aspetta che nNumEstr sia un integer , mentre invece nella procedura che la richiama la variabile che poi verra passata a questa procedura è dichiarata Long , da qui l'errore .. basta sostituire il tipo facendo in modo che sia lo stesso , possiamo usare sia integer che long tanto si tratta comunque di tipi numerici , il long contiene solo valori piu alti rispetto ad un integer nel nostro caso è ininfluente
dato che la variabile conterra numeri bassi da 1 a 288.

Il fatto che nNumEstr on ti scorra è semplicissimo ... veramente te lo dovrei chiedere io a te coe mai ... prova a seguire mentalmente
i flòusso del codice e vedrai che il fattto che no scorre o meglio che è fisso su un valore è normale... forse non va valorizzata in quel punto
della procedura la label che scorre ..

Per la funzione che ti avevo chiesto non so se va bene , quello che è sicuro è che non hai fatto come ti ho chiesto.
Ti avevo detto se io ti chiedessi a mente o con carta e penna di dirmi a che ora corrisponde l'estrazione numero 50
tu che faresti ? Ti metteresti a fare un ciclo for nidificato a mente o con carta e penna ?
C'è una banale formula ..niente di speciale pure un ragazzino della prima media sarebbe in grado di trovarla.
se c'è un 'estrazione ogni 5 minuti ogni ora quante ce ne sono ? ... parti da questa domanda e individua sta famosa formula..
èuoi farti aiutare anche da altri .. non si tratta di programmazione ma di logica ...
ciao
 
Ciao Luigi,

allora per l'errore ora ho capito ed ho cambiato il tipo mettendo appunto Long nel GetOraEstrazione(nNumEstr As Long).

tu mi chiedi a me perchè non scorre il numestr...io sto provando a seguire il flusso di tutto il codice...ma per ora non capisco dove cavolo inserire il : LblNumEstr.Caption = NumEstr e non so se è giusto passare appunto il NumEstr....

Comincia ad essere abbastanza complesso tutto il flusso con le varie function e probabilmente mi perdo.....


Per la funzione invece si, hai ragione non ho fatto come indicavi tu.

Tu parli di banale formula, se ogni 5 minuti c'è un'estrazione io so che in 1 ora c'è ne sono 12, non ho ancora capito la logica di quello che intendi Tu, ma ci arriverò.
 
forse perche in quella procedura numestr non prende il valore dell'estrazione che stiamo scaricando , ma mantiene l'ultimo numero che avevamo...
forse il num estr che scorre va letto mentre stiamo scrivendo le estrazioni in archivio quando cicliamo sull'arrat aEstr ...o al limite mentre leggiamo la pagina html.

riguardo la formula alla 50esima estrazione sono passati 50 X 5 minuti ovvero 250 minuti .. quante ore ci stanno in 250 minuti ? Da un semplice calocolo ci sono 4 ore e 10 minuti ... a che ora iniziano le estrazioni ? Bho io manco lo so ..facciamo finta alle 5 del mattino
5 + 4.10 = 9.10 se le estrazioni iniziassero alle 5 la cinquantesima avverrebbe alle 9 e 10 ..

ciao
 
Buongiorno Luigi,

ho provato a prendere il valore nella procedura di lettura pagina html, quindi ho fatto :

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
        [COLOR="#FF0000"][B]LblNumEstr.Caption = nTrovate
        LblNumEstr.Refresh
        Call GetOraEstrazione(nTrovate)[/B][/COLOR]
        DoEvents
    Next
End Sub

In questo modo scorre, ma non a modo Tuo diciamo, ma in maniera molto veloce, quasi non si vede lo scorrimento...Tu avevi inserito una specie di sleep o altro per farle "andar piano" ??

Per le estrazioni ho capito il concetto, per la cronaca le estrazioni iniziano con la 1° alle 00:05 e finiscono con la 288 alle 23:59.

Riprendendo l'esempio alla 50 x 5 minuti fa 250

250 minuti = 4ore e 10 minuti

Inizio estrazioni a mezzanotte + 4.10 = 50 estrazione alle 04:10 del mattino

Ovviamente questa è la logica, poi da trasformare in codice.


Ecco la trasformazione in codice :

Codice:
Function GetOraEstrazione(nNumEstr As Long) As String

Dim Ore As String
Dim TotMinuti As Integer
Dim MinutiRimanenti As Integer

TotMinuti = (nNumEstr * 5)

Ore = TotMinuti / 60
MinutiRimanenti = TotMinuti Mod 60

LblOraEstr.Caption = Int(Ore) & ":" & Format(MinutiRimanenti, "00")

End Function

Funziona tutto, solo lo scorrimento è quasi invisibile, molto molto veloce!
 
Ultima modifica:
ciao Moro , se vanno veloce è meglio .. perche rallentarle .. anzi ...
invece se pur funzionate è sbagliatissima la funzione ...
è la funzioe che deve tornare l'orario e la label non va valorizzata dentro la funzione

è sbagliatissimo .. che l'abbiamo scritta a fare la funzione se poi facciamo cosi

LblOraEstr.Caption = Int(Ore) & ":" & Format(MinutiRimanenti, "00")

al suo posto ci vule
GetOraEstrazione = Int(Ore) & ":" & Format(MinutiRimanenti, "00")

poi da qualche parte nel codice per valorizzare la label farai

LblOraEstr.Caption = GetOraEstrazione (NumEstr)
 
Ultima modifica di un moderatore:
Ciao Luigi,

mi scuso per l'errore nella routine, non arrabbiarti...sto imparando grazie a Te...:)

Ho corretto in :

GetOraEstrazione = Int(Ore) & ":" & Format(MinutiRimanenti, "00")

nel codice però l'unico modo per farlo funzionare è mettere il :

LblOraEstr.Caption = GetOraEstrazione(nTrovate) e non NumEstr

nella Sub LeggiFileHtmlTornaEstrazioni.


Funziona, ma non è detto che sia corretto fare così...in caso fosse errato Ti chiedo aiuto per dove cavolo inserire LblOraEstr.Caption = GetOraEstrazione(NumEstr)

Thanks!
 
Ciao Moro , purche gli passi il valore riferito al numero di estrazione puoi chiamarla da dove vuoi ... naturalmente in coerenza con il codice scritto...
NumEstr era solo per farti capire cosa vuole ..
Io la metterei nel ciclo che legge l'array delle estrazioni dopo il parsing del file html.
Gli passerai il numestr presente nel membro del suddetto array.

ciao
 
Ciao Luigi,

io alla fine l'ho inserita qui :

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
        LblNumEstr.Caption = nTrovate
        LblNumEstr.Refresh
        [COLOR="#FF0000"][B]LblOraEstr.Caption = GetOraEstrazione(nTrovate)[/B][/COLOR]
        DoEvents
    Next
End Sub

Non so se è dove intendevi Tu, ma sembra funzionare egregiamente...

Direi che mi manca il passo del conteggio totale delle estr aggiunte, va fatta una function anche in questo caso??
 
Ciao Moro , nTrovate sei sicuro che coincida con il numero dell'estrazione ?
Facciamo finta che io inizio a scaricare l'aggiornamento e parto dall'ultima estrazione in archivio che facciamo finta fosse la numero 50 , in quella giornata mancano 238 estrazioni.
Allora la procedura inizia e scaricare dalal 51 .. ntrovate si incrementa in qel momento di +1 ... ora tu scarichi l'estrazione 51 ma ntrovate segna 1 ....

ciao
 
E' vero Luigi quello che dici, dovrebbe passare il NumEstr che deve coincidere con l'estrazione da cui parte a scaricare...però in quella function non c'è l'ho...o mi sbaglio?
 
come non ce l'hai ? L'errore è passargli nTrovate quando invece gli devi passare numestr presente nell'array delle estrazioni lette
 
se non erro l'array è aRetEstr e devo passargli il numestr, ma in fase di debug mi dice che la variabile non è definita...non capisco dove sbaglio
 
l'errore è fare tutte queste cose dentro LeggiFileHtmlTornaEstrazioni .. è dopo la chiamata a questa funzione e durante il ciclo che legge l'arrya da questa alimentato che devi farle.
 
Cavolo Luigi, l'hai messa giù sta frase in modo così difficile che mi impappino...

Allora è sbagliato fare tutte queste cose dentro LeggiFileHtmlTornaEstrazioni, quindi
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
        [COLOR="#FF0000"][B]
        LblNumEstr.Caption = nTrovate ' è sbagliato
        LblNumEstr.Refresh ' inserire 
        DoEvents ' qui queste righe
        [/B][/COLOR]
    Next
End Sub

detto questo, sarebbero da valorizzare la LblNumEstr e la LblOraEstr dopo la chiamata a questa funzione e durante il ciclo che legge l'array da questa alimentato....che difficile mamma mia! :)

La chiamata che viene dopo a questa è la chiamata a SalvaEstrazioni, l'array che "LeggiFileHtmlTornaEstrazioni" alimenta è aRetEstr...almeno credo che sia così!

Lo sai che ci sto pensando da un po' e ancora non ho capito qual è questa chiamata dopo questa funzione??

Come dite Voi li a Roma, mi sa che so' de' coccio proprio ! :)
 
Ultima modifica:

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