Novità

AIUTO , SE POTETE, AGGIORNAMENTO 10ELOTTO5MIN

Ciao Carmine , il form che hai impostato direi che va benissimo , tutte le altre funzioni che ci sono non andrebbero ricreate , funzionano ancora inutile fare dei doppioni pero se ti serve per esercitarti non ci sono problemi. Per ora quelle piu importanti da implementare sono quelle
per le quali hai gia predisposto i controlli.
Attivati e dove hai problemi chiedi pure.
 
Ciao Luigi, l'unica cosa che mi piacerebbe riportare nell'utility è quella del recupero delle estrazioni tra quelle mancanti, ovviamente il tutto a partire dal giorno 26/03/2014.

Non so se in Spaziometria tu facevi ciclando l'array aNum è una volta verificato che è a 0 ( vuoto) da li recuperavi o in altri modi....

Per il momento sono riuscito ad avere all'avvio il totale estrazioni, l'ultima data in archivio e l'ultima estrazione in archivio....

Ti chiederei un piccolo aiuto su come "sincronizzare" la progressbar con l'intera procedura di aggiornamento :)


Grazie!
 
Ultima modifica:
ciao , è molto semplice la progressbar ha due valori min e max che sono di default preimpostati su 0 - 100 poi c'è un'altra proprietà , la proprieta Value nella quale tu puoi passare dei valori che rientrino nel range prestabilito, se passi 100 ad esempio la progressbar arriva a fondo scala.
Detto questo a te serve rapportare a 100 lo stato di avanzamento del processo. Oppure potresti calcolare in anticipo il numero delle iterazioni e impostare di conseguenza il valore max della progressbar alla quale in questo secondo caso passerai una variabile che conteggia i cicli eseguiti.
Io ti consiglio il primo metodo.
Come fare ?
A te la soluzione logica .. a implementare il codice ci si pensa dopo q,ora il codice non esiste esiste un problema per cui trrovare una soluzione che soltanto poi verra trasformata in codice.
Tu come faresti ?.
 
Ciao Luigi,

allora a livello logico mi viene in mente una cosa di questo tipo :

verificare la data ultima in archivio, la data corrente il risultato in giorni rapportarlo a 100, quindi ad ogni cambio data incrementare la proprietà Value della progress bar....

Mi viene in mente questo per il momento...
 
benissimo sei sulla strada giusta , ora ti serve cercare una funzione che ti consenta di calcolare quanti giorni intercorrono tra due date.
Apri la guida di vb e vai a vedere le funzioni sulle date ,,ti garantisco che ce n'è una che fa al caso tuo.
Noi nel codice abbiamo gia usato DateAdd ora a te serve la funzione che fa il contrario
 
Ciao Luigi,

sicuramente Ti riferisci alla funzione DateDiff

Ecco la sintassi per calcolare quanti giorni intercorrono tra le 2 date:

DateDiff("d",data1,data2)


In questo modo avrei la differenza in giorni tra le 2 date, quest'ultima poi da rapportare a 100 per avere il max value della progressbar, corretto?
 
Ciao si esatto.. ora devi scrivere una funzioncina che passato un valore max e un valore corrente ti ritorni la percentuale del valore corrente rispetto al max. In questo modo ad ogni nuova iterazione del ciclo Do incrementi i giorni passi il valore dei giorni elaborati e dei giorni totale lei ti ritorna il valore per la progressbar
 
Ciao Luigi,

allora per la funzioncina, cercando un po' in giro ed aiutandomi con appunti e col web, sono arrivato ad un qualcosa di questo tipo...:

Codice:
Function PercentualeCorrente(ValoreUsato, ValoreTotale) As Currency
   ' Con questa funzione ottengo la percentuale del valore corrente rispetto al valore massimo
   Dim x As Currency
   Const Cento = 100
     x = (ValoreUsato * Cento) / ValoreTotale
    If x > 100 Then x = 100
    PercentualeCorrente = x
End Function

La funzione se correttamente scritta, la andrei ad inserire poi all'interno del ciclo Do - Loop :

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

        [B]Call PercentualeCorrente  [COLOR="#FF0000"]<------ Inserirei qui[/COLOR][/B]

        If Format(sNuovaData, "yyyymmdd") > Format(Now, "yyyymmdd") Then
            MsgBox "Aggiornamento completato"
        End If

    Loop

Son sulla strada giusta secondo Te?
 
la funzione è corretta , è sbaglaito il modo in cui la chiami.
Infatti il risultato della funzione deve essere usato per valorizzare la proprietò value della progressbar , quindi non con un semplice call.
 
Cavolo hai super ragione Luigi..

allora dovrebbe essere una cosa di questo tipo, almeno penso sia così..

ProgressBar.Value = (percentualeCorrente(qui devo studiare che parametri passare)

ovviamente non sono sicuro, ma devo fare alcune prove.

Volevo capire se il concetto o teoricamente è corretto fare così...
 
Ultima modifica:
ciao Moro , si tutto corretto .. fai le prove che tanto la cosa bella è che non si rompe niente al limite non funziona ...
 
Buongiorno Luigi,

ahah è vero, si può provare quanto si vuole tanto "non si rompe" niente...come dici Tu...

A parte questo, ti chiederei solo una piccola dritta sui parametri da passare per richiamare la funzione...non riesco a capire come fare...
 
la funzione serve per ottenere una percentuale del processo rapportando a 100 i giorni elaborati rispetto a quelli totali da elaborare.
Detto questo che gli vogliamo passare a sta funzione ? Forse un panino col prosciutto ? :-)
ciao
 
il panino con il prosciutto, vista l'ora lo passo a me e me lo mangio..:)

Alla funzione, probabilmente mi sono spiegato male, non so come far fare il calcolo per rapportare a 100 i giorni elaborati rispetto a quelli totali da elaborare...

con il DateDiff ottengo il risultato in giorni tra la data ultima in archivio ed oggi... ( se la data in archivio è uguale alla odierna però mi torna "0")

Per rapporate a 100 credo che se ne occupi la funzione apposita, ma non ho ancora capito come incastrare il tutto e far incrementare la progbar ad ogni interazione, ecco perchè Ti ho chiesto aiuto Luigi.

Attualmente ho messo giù così, ma ovviamente non funziona :

Codice:
Sub InitAggiornamentoDL5M()
    Dim sDataUltimaEstr As String
    Dim idEstr As Long
    Dim NumEstr As Long
    Dim sTemp As String
    Dim k As Long
    Dim sNuovaData As String
    Dim sLinkHtml As String, sFileLocal As String
   [COLOR="#FF0000"][B] Dim ValTot As Long
    Dim ValUsed As Long[/B][/COLOR]

    ImpostaArchivio10ELotto (2)    ' Con questo imposto l'archivio a quello del 10eLotto 5minuti

    sTemp = GetInfoEstrazioneDL(EstrazioniArchivioDL)    ' scrive il risultato una variabile temporanea

    ' leggo i dati dcontenuti nella variabile e li separo con split

    ReDim av(0) As String
    av() = Split(sTemp, " ")

    ' Formato risultato del getinfoestrazionedl [01056] [192] 21.04.2013
    ' 1° Elemento Array ->[01056]
    ' 2° Elemento Array ->[192]
    ' 3°Elemento Array ->21.04.2013
    ' Gli array partono da 0 perciò memorizzo i singoli valori nelle apposite variabili
    ' ricordando che dobbiamo normalizzarli togliendo parentesi quadre e sostitundo il . con /

    ' levo le parentesi quadre dall'id estrazione contenuto nell'elemento 0 dell'array aV()
    av(0) = Replace(av(0), "[", "")
    av(0) = Replace(av(0), "]", "")

    ' levo le parentesi quadre dal numero estrazione contenuto nell'elemento 1 dell'array aV()
    av(1) = Replace(av(1), "[", "")
    av(1) = Replace(av(1), "]", "")

    ' sostituisco il punto con slash nell'elemento 2 dell'array aV()
    av(2) = Replace(av(2), ".", "/")

    ' ora siamo pronti per memorizzare i dati nelle variabili

    idEstr = Val(av(0))
    NumEstr = Val(av(1))
    sDataUltimaEstr = av(2)

    ' iniziamo il ciclo di lettura delle pagine html

    sNuovaData = sDataUltimaEstr  ' partiamo dall'ultima data disponbile
    
   [COLOR="#FF0000"][B] ValTot = DateDiff("d", sDataUltimaEstr, Now) ' calcola i giorni totali dall'ultima in archivio a oggi[/B][/COLOR]

    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
        
       [COLOR="#FF0000"][B] ValUsed = DateDiff("d", sNuovaData, Now)
        
        ProgBarXP1.Value = PercentualeCorrente(ValUsed, ValTot)
        
        ProgBarXP1.Value = ProgBarXP1.Value + 1
[/B][/COLOR]
        If Format(sNuovaData, "yyyymmdd") > Format(Now, "yyyymmdd") Then
            MsgBox "Aggiornamento completato", vbInformation, "Informazione"
        End If

    Loop

End Sub

In grassetto rosso gli inserimenti fatti....
 
Ciao , eh il panino lo mangerei volentieri anche io ora ..ad ogni modo sei quasi sulla strada giusta.
ValTot hai fatto bene a calcolarlo prima del ciclo Do , al limite puoi valorizzarlo con il totale dei giorni da elaborare +1 .
Invece e' sbagliato il modo in cui valorizzi ValUsed.
Scusa tu sai che ad ogni ciclo del Do si incrementano i giorni di 1 , quindi ValUsed prima del Do vale 0 e ad ogni iterazione si incrementa di 1 , valused = valused +1.
Per il resto è ok.
se la procedura è in un modulo e la progressbar in un form hai due strade per riferirti ad essa.
La prima Form1.Progressbar1.value = x
la seconda passare la progressbar per poarametro alla procedura.


ciao
 
Ciao Luigi,

allora per il codice ho scritto ora in questo modo :

Codice:
Sub InitAggiornamentoDL5M()
    Dim sDataUltimaEstr As String
    Dim idEstr As Long
    Dim NumEstr As Long
    Dim sTemp As String
    Dim k As Long
    Dim sNuovaData As String
    Dim sLinkHtml As String, sFileLocal As String
    Dim ValTot As Long
    Dim ValUsed As Long

    ImpostaArchivio10ELotto (2)    ' Con questo imposto l'archivio a quello del 10eLotto 5minuti

    sTemp = GetInfoEstrazioneDL(EstrazioniArchivioDL)    ' scrive il risultato una variabile temporanea

    ' leggo i dati dcontenuti nella variabile e li separo con split

    ReDim av(0) As String
    av() = Split(sTemp, " ")

    ' Formato risultato del getinfoestrazionedl [01056] [192] 21.04.2013
    ' 1° Elemento Array ->[01056]
    ' 2° Elemento Array ->[192]
    ' 3°Elemento Array ->21.04.2013
    ' Gli array partono da 0 perciò memorizzo i singoli valori nelle apposite variabili
    ' ricordando che dobbiamo normalizzarli togliendo parentesi quadre e sostitundo il . con /

    ' levo le parentesi quadre dall'id estrazione contenuto nell'elemento 0 dell'array aV()
    av(0) = Replace(av(0), "[", "")
    av(0) = Replace(av(0), "]", "")

    ' levo le parentesi quadre dal numero estrazione contenuto nell'elemento 1 dell'array aV()
    av(1) = Replace(av(1), "[", "")
    av(1) = Replace(av(1), "]", "")

    ' sostituisco il punto con slash nell'elemento 2 dell'array aV()
    av(2) = Replace(av(2), ".", "/")

    ' ora siamo pronti per memorizzare i dati nelle variabili

    idEstr = Val(av(0))
    NumEstr = Val(av(1))
    sDataUltimaEstr = av(2)

    ' iniziamo il ciclo di lettura delle pagine html

    sNuovaData = sDataUltimaEstr  ' partiamo dall'ultima data disponbile
    
    ValTot = DateDiff("d", sDataUltimaEstr, Now) + 1 ' calcola i giorni totali dall'ultima in archivio a oggi

    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
        
        [COLOR="#FF0000"][B]ValUsed = ValUsed + 1[/B][/COLOR]
        
        ProgBarXP1.Value = PercentualeCorrente(ValUsed, ValTot)
        
        ProgBarXP1.Value = ProgBarXP1.Value + 1

        If Format(sNuovaData, "yyyymmdd") > Format(Now, "yyyymmdd") Then
            MsgBox "Aggiornamento completato", vbInformation, "Informazione"
        End If

    Loop

End Sub

la function invece è sempre nello stesso codice, non in un modulo a parte ed è così scritta :

Codice:
Function PercentualeCorrente(ValoreUsato, ValoreTotale) As Currency
   ' Con questa funzione ottengo la percentuale del valore corrente rispetto al valore massimo
   Dim x As Currency
   Const Cento = 100
     x = (ValoreUsato * Cento) / ValoreTotale
    If x > 100 Then x = 100
    PercentualeCorrente = x
    ProgBarXP1.Value = x <----- Ho messo io questa riga...
End Function

mi sa che devo passare la progressbar come parametro alla procedura, vero?
 
Ultima modifica:
ciao Moro , questa linea va levata

ProgBarXP1.Value = ProgBarXP1.Value + 1


per il resto se la procedura InitAggiornamentoDL5M è nello stesso form della progressbar allora non c'è problema , senno aggiungi un parametro .. niente di sensazionale , ProgBar as xpprogresbbar

e poi nel codice ProgBar.Value = Percentuale ....
 
Ciao Luigi,

mi sa che mi perdo qualche passaggio.

Allora io ho usato la progbar con stile XP, il suo nome è ProgBarXP1

è nello stesso form della procedura InitAggiornamentoDL5M, quindi come dici Tu non c'è problema...

Quindi ho levato il "ProgBarXP1.Value = ProgBarXP1.Value + 1" come mi hai suggerito, e ora nel codice ho solo :

ProgBarXP1.Value = PercentualeCorrente(ValUsed, ValTot)

ovviamente all'interno del ciclo do....

Più in basso ho la function

Codice:
Function PercentualeCorrente(ValoreUsato, ValoreTotale) As Integer
   ' Con questa funzione ottengo la percentuale del valore corrente rispetto al valore massimo
   Dim x As Integer
   Const Cento = 100
     x = Int((ValoreUsato * Cento) / ValoreTotale)
    If x > 100 Then x = 100
    PercentualeCorrente = x
    ProgBarXP1.Value = x
End Function

o mi perdo qualcosa, o a me non vuole andare per default...:)
 
Bhe ad occhio sembrerebbe tutto ok , in questi cas ici viene in aiuto il debug.
Posizionati sulla riga

ProgBarXP1.Value = PercentualeCorrente(ValUsed, ValTot)

premi F9 , la linea si colora di rosso , è un breackpoint.
Poi manda in run il programma , si blocchera sulla linea rossa alche li puoi vedere il valore delle variabili (selezionando la variabile che vuoi e premendo shift + f9 ad esempio)
per eseguire line by line vai di f8 e segui il flusso del codice per vedere dove c'è qualcosa che non va.

Ciao
 
Ciao Luigi,

va che è una meraviglia, alla fine ho dovuto mettere il controllo classico progressbar1 di vb e tutto ha funzionato subito, con quella stile "XP" non ne vuole sapere di andare...

Ciao
 

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

Ultimi Messaggi

Indietro
Alto