Novità

Curiosità archivio per LuigiB

  • Creatore Discussione Creatore Discussione Roby
  • Data di inizio Data di inizio
Stato
Chiusa ad ulteriori risposte.
R

Roby

Guest
Ciao Luigi scusa la curiosità

ieri sera ho scaricato il file dalla lottomatica

storico.txt

ma noto che è aggiornato fino all'estrazione del 30/09/2010

adesso mi domando , come mai il programma aggiorna ugualmente fino all'ultima estrazione?

ti appoggi a qualche altro link?

grazie
 
ciao Morfeo , si il file che loro chiamano archivio è sempre qualche estrazione sotto , le ultime estrazioni le prendo direttamente dalle loro pagine html e non dal file dell'archivio completo
 
si immaginavo

infatti cercavo di emulare su come hai fatto

solo ce non riesco

infatti con il componente msinet.ocx
catturo il codice html

e metto i vari numeri in delle text

pero' poi se cambio giorno di estrazione

i numeri non hanno piu la stessa posizione

capito che intendo?
 
Ciao Morfeo , non ti consiglio di usare il componente inet , bensi le api di windows.
La logica che ti consiglio di seguire è questa :

1) costruire l'url valido che punta alla pagina lottomatica
2) salvare in locale la pagina html attraverso la funzione DownloadFile (che ti ho allegato)
3) fare il parsing della pagina html salvata in locale per leggere i numeri dell'estrazione
4) far tornare un array che contenga i numeri dell'estrazione corrente letta dal parsing della pagina html
5) usare l'array per alimentarei tuoi campi testo



Ora ti allego le funzioni necessarie per la dichiarazione delle funzioni utili per scaricare un file html
puntato da un url in locale.
Inserisci nel tuo progetto un modulo e incolla quello che ti ho postato.

L'url da costruire per accedere alla pagina lottomatica è composto da
un indirizzo base e un parametro che poi è la data.
E si presenta cosi :

sUrlBase = "http://www.lottomaticaitalia.it/lotto/estrazioni/estrazioni_dettaglio.do?dataConcorso=" & "2009-11-19"

Quindi prima costruisci l'url in base alal data che vuoi e poi lo scarichi
in locale per leggerlo.

Puoi farlo con la funzione che ti ho allegato che si usa cosi

Codice:
        If DownloadFile(sUrl , "c:\Estrazione.html", "") Then
		' qui va lanciata la procedura che legge il file scaricato in locale
		' e fa tornare un array con i numeri delle estrazioni 
		
		' call LeggiEstrazione (aRetNumeri()) ' una funzione tipo questa dove aRetNumeri() potrebbe essere dichiarto con  Redim aRetNumeri(1 to 11 , 1 to 5) as integer

        End If

Per aprire un file e leggerlo si usano le funzioni di input output , non so se sai gia usarle
se no chiedi pure , non sono complicate.




Codice:
' DA INSERIRE NEL MODULO BAS 
' *** download from url
'*********************************************

Private Declare Function IsValidURL Lib "URLMON.DLL" (ByVal pbc As Long, ByVal szURL As String, ByVal dwReserved As Long) As Long

Private Declare Function URLDownloadToFile Lib "urlmon" Alias "URLDownloadToFileA" (ByVal pCaller As Long, ByVal szURL As String, ByVal szFileName As String, ByVal dwReserved As Long, ByVal lpfnCB As Long) As Long


Function DownloadFile(URL As String, LocalFilename As String, sRetErr As String) As Boolean
    Dim lngRetVal As Long
    If IsGoodURL(URL) Then
        lngRetVal = URLDownloadToFile(0, URL, LocalFilename, 0, 0)
        If lngRetVal = 0 Then
            DownloadFile = True
        Else
            sRetErr = "Errore " & lngRetVal
        End If
    Else
        sRetErr = "Indirizzo non valido"
    End If
End Function


Function IsGoodURL(ByVal sUrl As String) As Boolean
    'The IsValidURL always expects a UNICODE string, but whenever
    'VB calls an API function, it converts the strings to ANSI strings.
    'That's why we're going to use a trick here. Before calling the function,
    'We're going to convert the unicode string to unicode so we get a double
    'unicode string.
    'Before VB calls the API function, it converts our double unicode string
    'to a normal unicode string; exactely what IsValidURL is expecting.
    sUrl = StrConv(sUrl, vbUnicode)
    'Now call the function
    IsGoodURL = (IsValidURL(ByVal 0&, sUrl, 0) = 0)
End Function
 
Ciao Luigi

mamma mia

grazie molte della risposta
ho fatto come hai detto in modo esatto

ho creato un form1
ho messo un
Private Sub Command1_Click()
Call DownloadFile
End Sub

ma qui mi da già errore, se clicco mi da errore
errore di compilazione : argomento non facoltativo

sicuramente perchè questa riga di codice :
sUrlBase = "http://www.lottomaticaitalia.it/lotto/estrazioni/estrazioni_dettaglio.do?dataConcorso=" & "2009-11-19"



non l'ho messa al posto giusto
si trova nel modulo con tutto il resto di codice che mi hai dato
esattamente qui :

Function IsGoodURL(ByVal sUrl As String) As Boolean
sUrlBase = "http://www.lottomaticaitalia.it/lotto/estrazioni/estrazioni_dettaglio.do?dataConcorso=" & "2009-11-19"
sUrl = StrConv(sUrl, vbUnicode)
IsGoodURL
 
Ciao Morfeo , allora ti da quell'errore perche la funzione DownloadFile
ha questo prototipo :

DownloadFile (sUrl , sFileLocale , sRetErr)

tu hai lanciato la funzione ma non gli hai passato i parametri.

dovresti fare cosi :

Codice:
Private Sub Command1_Click()
   dim sUrlBase as string 
   dim sFileLocale as string 
   dim sRetErr as string 

   sUrlBase = "http://www.lottomaticaitalia.it/lotto/estrazioni/estrazioni_dettaglio.do?dataConcorso=" & "2009-11-19"

   sFileLocale = "c:\Estrazione.html"

   if DownloadFile  (sUrlBase , sFileLocale , sRetErr) = false then
        msgbox sRetErr
   end if 
End Sub


in questo modo scarichi il file relativo all'estrazione del 19/11/2009
in locale , poi dovrai aprire questo file per fare il parsing
te lo spiego questa sera quando torno a casa.

Non ho la tua mail mi sa ...
Ciao !
 
aspetta , ho modificato il codice c'era un errore , ricopialo ora e ricopia pure la riba che dovevi mettere nel modulo , perche non so se magari l'ahi modificata poi fai confusione.
 
Grazie LuigiB ( pubblicamente )


per il materiale di didattica di vb6

ho capito il meccanismo del funzionamento

sto riscrivendo il tutto, cosi mi resta impresso nellaa memoria
:)

ulteriore domanda

se ad esempio adesso il file storico.txt è alla data del 30/09/2010


dovrebbe in teoria scaricare 3 file HTML delle tre date successive

quindi il funzionamento dovrebbe essere cosi :

SE ultima data file storico minore della data odierna (Date)

data file di testo . value = data file di testo . value + 1

quindi qui cerca di scaricare il file html di giorno 01/10/2010

se il file esiste lo scarica ed aggiunge l'estrazione
altrimenti
incrementa ancora il value di + 1
quindi 02/10/2010
a questo punto
il file html esiste
lo scarica ed aggiunge estrazione

e ripete il ciclo fino alla data odierna


in questo caso inserisce tre estrazioni
del 2-5-7 ottobre

dimmi se la meccanica di come è il funzionamento è giusta

come faccio a dire che il file html esiste?



grazie
 
Stato
Chiusa ad ulteriori risposte.

Ultima estrazione Lotto

  • Estrazione del lotto
    sabato 26 luglio 2025
    Bari
    81
    09
    05
    54
    10
    Cagliari
    56
    07
    45
    69
    64
    Firenze
    39
    16
    56
    29
    09
    Genova
    67
    12
    55
    74
    04
    Milano
    40
    30
    44
    63
    27
    Napoli
    63
    07
    74
    86
    81
    Palermo
    80
    34
    16
    27
    53
    Roma
    08
    78
    43
    03
    52
    Torino
    38
    84
    47
    57
    20
    Venezia
    88
    70
    85
    65
    24
    Nazionale
    36
    09
    43
    55
    10
    Estrazione Simbolotto
    Nazionale
    25
    23
    13
    40
    35
Indietro
Alto