Novità

AIUTO , SE POTETE, AGGIORNAMENTO 10ELOTTO5MIN

no la soluzione non c'è perche sebbene open office legga i file xls , il programma per crearli sfrutta delle cose che open office non ha.
 
Ciao Moro , basta inserire un kill dopo la lettura del file html , mi pare che la procedura si chiamasse LeggiHtmlTornaEstrazioni o qualcosa di simile.
Il concetto è eliminare il file immediatamente dopo averlo letto , in alternativa potresti pensare a un percorso dove spostare i file letti in modo
da poterli rileggere tutti in caso di archivio corrotto /rovinato , Con questa seconda soluzione dovresti prevedere eventualmente un aggiornamento da internet oppure da percorso locale... ad ogni modo solo per parlare non è necessaria una funzione simile.

Ciao Luigi, ho inserito anche la kill per ogni file html letto, ora gira tutto perfettamente...mi manca solo qualche miglioria grafica e dopo ci siamo :)
 
Benissimo ! Gli utenti che adoperano il programma per il 10 e lotto potranno continuare ad aggiornare l'archivio anche grazie a te.
Buon primo maggio.
 
Ciao Luigi,

buon primo maggio anche a Te!

Gli utenti che adoperano il programma per il 10 e lotto potranno continuare ad aggiornare l'archivio anche grazie a te.

Non esagerare, lo sanno benissimo tutti che è grazie a Te se io sono riuscito nell'impresa, non è tutta farina del mio sacco...:)
 
Ciao Luigi,

prima del rilascio ho bisogno di correggere/capire un ultimo punto che è a dir poco fastidioso.

Mi spiego, capita spesso di trovare nella pagina da dove estreapolamiamo le estrazioni che pur avendo estratto tutte le 288 estrazioni, nella suddetta pagina se ne vedano solo 287.

Tutto questo è accaduto ieri sera alle 00:10, ho lanciato l'aggiornamento, finito tutto ed al riaprire del plugin ho notato l'errore mostrato sotto nell'immagine.

Tu puoi dirmi e chi se ne frega? tanto il programma salta e va a vedere tutte le estrazioni presenti...Son daccordo però non capisco perchè mandi in tilt l'aggiornamento e succede quanto puoi vedere nell'immagine sotto:
Errore_aggiornamento.jpg

E' come se il programma si impalli sulla lettura dei dati attuali in archivio, il risultato è che se si rilancia la procedura parte a fare una verifica come se volesse aggiornare dal 01/01/1900 quindi resta in loop all'infinito, gli unici 2 modi per riparare all'errore sono:

- Andare in tronca archivio e riportare le estrazioni alla Es. N° 287, aspettare che la lottomatica la inserisca dove noi le estrapoliamo e dopo appena rilanciare l'aggiornamento;

- Usare la procedura di Silop per il ripristino archivio, aspettare che la lottomatica la inserisca dove noi le estrapoliamo e dopo appena rilanciare l'aggiornamento.

C'è un qualche sistema per far in modo che il programma non si "incasini" se ne legge solo 287 ???


P.S. Se apro la vecchia procedura di aggiornamento (la Tua di Spaziometria) la schermata vede correttamente i dati, se apro il mio plugin no...





Spero di essermi spiegato.
 
Ultima modifica:
bhe se c'è qualche sistema sta a te scoprirlo e implementare l'opportuna soluzione , che ne so gestire l'estrazione mancante inserendone una fittizzia, controllare prima l'arrya delle estrazioni lette .. o altre cose che possono venirti in mente.
Ciao
 
Ciao Luigi,

anche per quest'ultima cosa sono costretto a chiedere il Tuo aiuto...

Gestire l'estrazione mancante inserendone una fittizzia intendi dire qualcosa tipo N° Estr 288 numeri estratti 0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0 opure inserire il num estr(288) lasciando vuoto il campo numeri estratti?

Altra soluzione controllare prima l'array delle estrazioni lette... controllare che intendi? Capire se son tutte e 288 o meno?

Perdonami Luigi se Ti stresso sempre, ma vorrei concludere questo lavoro e metterlo a disposizione di tutti, ma a mio parere quest'ultima "noia" va risolta per evitare incasinamenti degli archivi di chissà quanti utenti...


Come al solito Ti ringrazio,


Ciao
 
Ultima modifica:
Ciao Moro , ti do solo delle dritte se ci riesci bene.
Allora quando tu leggi il file html ti torna un array di estrazioni, poi cicli su questo array e manono mano aggiungi le estrazioni
in archivio.
Ebbene l'array proviene dalla lettura del file html e per ogni elmente contiene data e numero estrazione.
Se un'estrazione è mancante forse si puo capire valutando il numero estrazione del singolo elemento dell'array magari varra 0
non lo so ..verifica.
Durante il ciclo che salva le estrazoni in archivio ad esempio potresti verificare che cio che stai per salvare sia coerente, che ne
so verificare se i numerei letti sono validi , vewrificare se c'è un numero estrazione consecutivo al precedente .. insomma
trovare un criterio per vederer se quel singolo elemento dell'array e cioeè l'estrazione che stai per aggiungere sia valida o meno.
Quindi l'ideale sarebbe durante il ciclo che legge l'array aEstr e salva le estrazioni con SalvaEstrazioneDl inserire una funzione
alla quale passare il singolo elemento letto in quel momento nel ciclo ( aEstr(k) ), questa funzione analizza i dati e verifica
se l'estrazione è corretta , se è corretta torna True senno False.
Poi tu usandola e passandogli di volta in volta l'elemento aEstr(k) se torna true salvi l'estrazione , se torna false
inserisci un ' estrazione fittizia.

Dovresti fare qualcosa del genere o seguendo questa idea o facendotene venire qualcuna.. ripeto se ci riesci meglio per tutti.

ciao
 
Ciao Luigi,

immaginavo che eri arrivato al limite della sopportazione, però manca un pezzo alla Tua prima frase :


Ciao Moro , ti do solo delle dritte se ci riesci bene
(altrimenti resta così e chi se ne frega!) :)

A parte questo, e Ti capisco, vorrei comunque almeno provare a fare quest'ultima function ed inserirla nel codice.

Allora il flusso del codice è quello ed è tutto ovviamente corretto...per la Tua dritta avrei pensato ad un qualcosa del genere:

Mettere qui la chiamata alla funzione VerificaEstrazioni e passargli il parametro aEstr(k):

Codice:
Private Sub SalvaEstrazioni(aEstr() As STRUCT_ESTRAZIONE_10LOTTO, sDataUltimaEstrArchivio As String, sDataCorrente As String, NumEstr As Long, nTotInsert As Long)
    Dim k As Long
    Dim n As Long
    Dim i As Long
    Dim sFile As String
    Dim sData As String
    Dim nNumEst As Integer
    sFile = GetDirectoryAppData & "BaseDati10Elotto5M.Dat"    ' Setto il path del percorso dove andare a scrivere le estrazioni
    ReDim aNumeri(0)    ' Ridimensiono l'array aNumeri a 0 elementi
        
    If sDataUltimaEstrArchivio = sDataCorrente Then    ' Se l'ultima data rilevata in archivio è uguale alla data odierna
        For k = 1 To UBound(aEstr) ' Cicla l'array aEstr da 1 a quante estrazioni legge nella pagina html
            If aEstr(k).strctData.nNumEstrazione > NumEstr Then ' Se il numero estrazione della pagina html scaricata è maggiore dell'ultimo in archivio
                Call LeggiNumeriEstrazioni(aEstr(k), aNumeri)    ' Richiamo la funzione LeggiNumeriEstrazioni
                LblNumEstr.Caption = k ' Valorizzo la label Numero Estrazione che scorre man mano che vengono viste estrazioni
                LblOraEstr.Caption = GetOraEstrazione(k) ' Mostro l'ora dell'estrazione tramite la function GetoraEstrazione
                nTotInsert = nTotInsert + 1
                LblTotEstrAggiunte.Caption = Format(nTotInsert, "###,###")
                DoEvents
                [COLOR="#FF0000"][B]Call VerificaEstrazioni(aEstr(k))[/B][/COLOR]
                Call SalvaEstrazioneDL(aNumeri, sDataCorrente, aEstr(k).strctData.nNumEstrazione, sFile) ' Richiamo la procedura che salva le estrazioni
            End If
        Next
    Else
        For k = 1 To UBound(aEstr) ' Cicla l'array aEstr da 1 a quante estrazioni legge nella pagina html
            Call LeggiNumeriEstrazioni(aEstr(k), aNumeri)    ' Richiamo la funzione LeggiNumeriEstrazioni
            LblNumEstr.Caption = k ' Valorizzo la label Numero Estrazione che scorre man mano che vengono viste estrazioni
            LblOraEstr.Caption = GetOraEstrazione(k) ' Mostro l'ora dell'estrazione tramite la function GetoraEstrazione
            nTotInsert = nTotInsert + 1
            LblTotEstrAggiunte.Caption = Format(nTotInsert, "###,###")
            DoEvents
            [COLOR="#FF0000"][B]Call VerificaEstrazioni(aEstr(k))[/B][/COLOR]
            Call SalvaEstrazioneDL(aNumeri, sDataCorrente, aEstr(k).strctData.nNumEstrazione, sFile) ' Richiamo la procedura che salva le estrazioni
        Next
    End If
    
End Sub

poi la sub con la funzione e qui ho problemi nel capire come fare....

Codice:
Private Sub VerificaEstrazioni(strctEstr As STRUCT_ESTRAZIONE_10LOTTO)

Qua devo fare la verifica....

End Sub

Almeno l'idea può essere valida?


Luigi, se Ti è possibile o è nelle Tue volontà aiutami, altrimenti lascia stare. Credo di averTi rotto abbastanza da più di un mese ormai.....


Grazie in anticipo.


Saluti
 
Ultima modifica:
ciao , stesso errore che avevi gia fatto ,se è un a function della quale devi testare il risultato e in base a quello fare una cosa o l'altra perche la chiami con call ?
 
chiedo perdono, hai ragione Luigi,

non va chiamata con Call essendo appunto una function con risultato da testare.

Essendo appunto una function con possibilità di ritorno True o False potrebbe andar bene anche un :

Codice:
Private Sub SalvaEstrazioni(aEstr() As STRUCT_ESTRAZIONE_10LOTTO, sDataUltimaEstrArchivio As String, sDataCorrente As String, NumEstr As Long, nTotInsert As Long)
    Dim k As Long
    Dim n As Long
    Dim i As Long
    Dim sFile As String
    Dim sData As String
    Dim nNumEst As Integer
    sFile = GetDirectoryAppData & "BaseDati10Elotto5M.Dat"    ' Setto il path del percorso dove andare a scrivere le estrazioni
    ReDim aNumeri(0)    ' Ridimensiono l'array aNumeri a 0 elementi
        
    If sDataUltimaEstrArchivio = sDataCorrente Then    ' Se l'ultima data rilevata in archivio è uguale alla data odierna
        For k = 1 To UBound(aEstr) ' Cicla l'array aEstr da 1 a quante estrazioni legge nella pagina html
            If aEstr(k).strctData.nNumEstrazione > NumEstr Then ' Se il numero estrazione della pagina html scaricata è maggiore dell'ultimo in archivio
                Call LeggiNumeriEstrazioni(aEstr(k), aNumeri)    ' Richiamo la funzione LeggiNumeriEstrazioni
                LblNumEstr.Caption = k ' Valorizzo la label Numero Estrazione che scorre man mano che vengono viste estrazioni
                LblOraEstr.Caption = GetOraEstrazione(k) ' Mostro l'ora dell'estrazione tramite la function GetoraEstrazione
                nTotInsert = nTotInsert + 1
                LblTotEstrAggiunte.Caption = Format(nTotInsert, "###,###")
                DoEvents
                [COLOR="#FF0000"][B]If VerificaEstrazioni(aEstr(k)) then
                Call SalvaEstrazioneDL(aNumeri, sDataCorrente, aEstr(k).strctData.nNumEstrazione, sFile) ' Richiamo la procedura che salva le estrazioni
                Else
                'Qui andrebbe in caso di False aggiunta una estrazione fittizzia...
                End If[/B][/COLOR]
            End If
        Next
    Else
        For k = 1 To UBound(aEstr) ' Cicla l'array aEstr da 1 a quante estrazioni legge nella pagina html
            Call LeggiNumeriEstrazioni(aEstr(k), aNumeri)    ' Richiamo la funzione LeggiNumeriEstrazioni
            LblNumEstr.Caption = k ' Valorizzo la label Numero Estrazione che scorre man mano che vengono viste estrazioni
            LblOraEstr.Caption = GetOraEstrazione(k) ' Mostro l'ora dell'estrazione tramite la function GetoraEstrazione
            nTotInsert = nTotInsert + 1
            LblTotEstrAggiunte.Caption = Format(nTotInsert, "###,###")
            DoEvents
            [COLOR="#FF0000"][B]If VerificaEstrazioni(aEstr(k)) then
            Call SalvaEstrazioneDL(aNumeri, sDataCorrente, aEstr(k).strctData.nNumEstrazione, sFile) ' Richiamo la procedura che salva le estrazioni
            Else
            'Qui andrebbe in caso di False aggiunta una estrazione fittizzia...
            End If[/B][/COLOR]
        Next
    End If
    
End Sub

e di conseguenza modificherei anche :

Codice:
Function VerificaEstrazioni(strctEstr As STRUCT_ESTRAZIONE_10LOTTO)

Qua devo fare la verifica....

End Function

Spero di non aver ri-ri-rifatto ancora lo stesso errore... :)
 
Ultima modifica:
Ciao Luigi,

qualcosa di simile nel senso che può andar bene o qualcosa di simile che ho rifatto lo stesso o altri errori?

Dai Luigi, almeno oggi che è il mio compleanno cerca di essere un pò più clemente...solo per oggi dammi qualche aiutino in più magari con qualche mezza bozza di codice :)



Ciao
 
Bhe se e il tuo compleanno ti faccio tantissime mi auguri...e per regalo ti daro l opportunita di scervellarti sul problema . Devi implementare il codice per ora l impostazione va bene. Ciao
 
Cavolo Luigi, un regalo più bello non potevo ricevere...!!

Ovviamente stò scherzando e Ti ringrazio per gli auguri, comunque non credo che riuscirò ad implementare il codice seppur scervellandomi.

Credo che hai più o meno capito il mio livello e le mie potenzialità quindi senza Tue dritte sarà dura.


Non importa ci provo e riprovo e speramo di riuscire.


Ancora grazie Luigi per gli auguri e per l'aiuto!


Ciao
 
ciao. a livello di istruzioni di codice ti posso assicurare che per le nuove implementazioni che dovrai fare non c'è manco un'istruzione che tu non abbia gia visto all'interno di quello che gia abbiamo fatto.
A livello di logica penso che sia tutto chiaro , a parole ti ho detto con precisione cosa andrebbe fatto.
In sintesi se hai realmente capito cio che abbiamo fatto fin'ora non avrai difficolta a implementare la parte ancora da fare.
un saluto
 
ciao. a livello di istruzioni di codice ti posso assicurare che per le nuove implementazioni che dovrai fare non c'è manco un'istruzione che tu non abbia gia visto all'interno di quello che gia abbiamo fatto.
A livello di logica penso che sia tutto chiaro , a parole ti ho detto con precisione cosa andrebbe fatto.
In sintesi se hai realmente capito cio che abbiamo fatto fin'ora non avrai difficolta a implementare la parte ancora da fare.
un saluto


Ciao Luigi, dal Tuo tono si capisce che sei quasi alla frutta con la sopportazione, comunque hai ragione :

Le implementazioni da fare (le ho già fatte) non sono nulla di nuovo di cose già viste/fatte in questi giorni.

Come logica mi è quasi tutto chiaro, nel senso che ho capito quasi tutto l'unico dettaglio che mi resta da capire è questo passaggio :

Quindi l'ideale sarebbe durante il ciclo che legge l'array aEstr e salva le estrazioni con SalvaEstrazioneDl inserire una funzione
alla quale passare il singolo elemento letto in quel momento nel ciclo ( aEstr(k) ), questa funzione analizza i dati e verifica
se l'estrazione è corretta , se è corretta torna True senno False.

Ecco proprio questa analisi non so come farla, cioè il "aEstr(k)" non è altro che un numero che va da 1 a quante estrazioni legge nell'hatml...non saprei come fare un check per capire :

- Si son tutte;

- No non son tutte;

Un ciclo da 1 a 288 e vedere se il valore torna con aestr(k) altrimenti non son tutte...ecco questo è il mio unico "dilemma" diciamo...


Un Saluto
 
Ahime temo che allora non sia proprio tutto chiaro.
E' vero o no che aEstr è un array dichiarato con un tipo dati UDT ?
E' vero o no che ogni elemento dell'array è quindi una struttura del tipo struct_estrazione ?
E' vero o no che questa struttura dispone di diversi membri per ogni elemento dell'array ?
Magari è proprio uno di questi membri che va testato per sapere se l'estrazioner è valida ... forse proprio il membro aEstr(k).structData.NumEstr....

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
Indietro
Alto