CONECTAR VB6 A INTERNET

KELVINCD 25/01/2013 12:28:47
#418104
Boas pessoal,
Estou criando um programa no VB6.
banco firebird.
Estou querendo colocar um botão atualizar onde ele atualizaria o banco com as informações de um site.
meu programa é sobre a lotofacil onde ao clicar em atualizar ele atualizaria os dados como os sorteios número de ganhadores...etc..etc..

So que nunca fiz isso e não sei por onde começa podem me ajudar dizendo o que tenho que fazer.
RONALD.OTAVIO 25/01/2013 14:35:34
#418118
Olá, acredito que com o componente inet você consegue buscar estas informações. Tente usar assim:

info = Inet1.OpenURL([Ô]http://resultadolotofacil.net/[Ô] <coloque o endereço da página que contém as informações, coloquei este como exemplo>)
If winfo <> [Ô][Ô] Then
Inicio = InStr(info, [Ô]Números Sorteados[Ô])
cont = 0
While cont < 2
Inicio = InStr(Inicio + 1, info, [Ô]/td[Ô])
cont = cont + 1
Wend
Inicio = InStr(Inicio, info, [Ô]td[Ô]) + 1
fim = InStr(Inicio, info, [Ô]/td[Ô]) - 1
dados = Mid(info, Inicio, fim - Inicio)
End If
Inet1.Cancel

Facilitaria se o sistema da caixa liberasse para ver o código fonte da página no qual auxiliaria a busca. Tente em algum outro site confiável.

Para verificação aumento o número do cont no while até conseguir todo resultado. Neste exemplo irá verificar o 3 [Ô]/td[Ô] que virá o resultado do 3o. número.

Espero ter ajudado.

Abraços,

Ronald
KELVINCD 01/02/2013 13:51:35
#418574
Boas galera.
Uma vez me falaram quem não tem cão caça com gato foi isso que fiz.
atraz desse link faço o download dos resultados da lotofacil.

https://www1.caixa.gov.br/loterias/_arquivos/loterias/D_lotfac.zip
ele me traz um arquivo em html

abro ele como bloco de notas e executo o segundo comando.

Private Sub cmdImportar_Click()
If Dir(txtArquivo.Text) = [Ô][Ô] Then
MsgBox [Ô]Arquivo Inexistente![Ô], vbOKOnly + vbCritical, [Ô]Erro[Ô]
txtArquivo.SetFocus
Exit Sub
End If
sub_Importa_Arquivo txtArquivo.Text
End Sub

Private Sub Form_Load()
txtArquivo.Text = App.Path & [Ô]\lotofacil.txt[Ô]
End Sub

Private Sub sub_Importa_Arquivo(sArquivoEntrada As String)
Dim sArquivoSaida As String
Dim sTextoSaida As String
Dim sLinhaEntrada As String
Dim iArquivoEntrada As Integer
Dim iArquivoSaida As Integer
Dim SQL As String
Dim cont, contg As Double
Dim dtAtual, dtNasc, hj As String
Dim valor As Double

sArquivoSaida = App.Path & [Ô]\exemplo.txt[Ô]

[ô]Se o arquivo de saida existe, deletamos ele
If Dir(sArquivoSaida) <> [Ô][Ô] Then
Kill sArquivoSaida
End If
[ô]Para prevenir erros, fechamos os arquivos abertos
[ô]E alocamos numeros livres para os novos
Close
iArquivoEntrada = FreeFile
iArquivoSaida = FreeFile
sTextoSaida = [Ô][Ô]
Open sArquivoEntrada For Input Access Read As #iArquivoEntrada
Do While Not EOF(iArquivoEntrada)
Line Input #iArquivoEntrada, sLinhaEntrada
[ô]Ignoramos as linhas vazias
If Trim(sLinhaEntrada) <> [Ô][Ô] Then
[ô]Agora, verificamos se a tag TD existe na linha
If InStr(1, sLinhaEntrada, [Ô]<td>[Ô]) > 0 Then
[ô]Para pegarmos o numeros, basta isolar o que está entre os dois delimitadores (< e > )
If sTextoSaida = [Ô][Ô] Then
sTextoSaida = Split(Split(sLinhaEntrada, [Ô]>[Ô])(1), [Ô]<[Ô])(0)
Else
sTextoSaida = sTextoSaida & vbCrLf & Split(Split(sLinhaEntrada, [Ô]>[Ô])(1), [Ô]<[Ô])(0)
End If
End If
End If

If cont = 51 Then
SQL = [Ô]INSERT INTO LOTOFACIL(CONCURSO,data,n1,n2,n3,n4,n5,n6,n7,n8,n9,n10,n11,n12,n13,n14,n15,G15,G14,G13,G12,G11,V15,V14,V13,V12,V11,ACUMULADO)values([Ô]
SQL = SQL & [Ô][ô][Ô] & sTextoSaida & [Ô][ô], [Ô]
sTextoSaida = [Ô][Ô]
End If

[ô]DATA
If cont = 53 Then dtAtual = Format(sTextoSaida, [Ô]yyyy/mm/dd[Ô]): SQL = SQL & [Ô][ô][Ô] & dtAtual & [Ô][ô], [Ô]: sTextoSaida = [Ô][Ô]

[ô]BOLAS 01-02-03-04-05-06-07-08-09-10-11-12-13-14-15
If cont = 55 Then SQL = SQL & [Ô][ô][Ô] & sTextoSaida & [Ô][ô], [Ô]: sTextoSaida = [Ô][Ô]
If cont = 57 Then SQL = SQL & [Ô][ô][Ô] & sTextoSaida & [Ô][ô], [Ô]: sTextoSaida = [Ô][Ô]
If cont = 59 Then SQL = SQL & [Ô][ô][Ô] & sTextoSaida & [Ô][ô], [Ô]: sTextoSaida = [Ô][Ô]
If cont = 61 Then SQL = SQL & [Ô][ô][Ô] & sTextoSaida & [Ô][ô], [Ô]: sTextoSaida = [Ô][Ô]
If cont = 63 Then SQL = SQL & [Ô][ô][Ô] & sTextoSaida & [Ô][ô], [Ô]: sTextoSaida = [Ô][Ô]
If cont = 65 Then SQL = SQL & [Ô][ô][Ô] & sTextoSaida & [Ô][ô], [Ô]: sTextoSaida = [Ô][Ô]
If cont = 67 Then SQL = SQL & [Ô][ô][Ô] & sTextoSaida & [Ô][ô], [Ô]: sTextoSaida = [Ô][Ô]
If cont = 69 Then SQL = SQL & [Ô][ô][Ô] & sTextoSaida & [Ô][ô], [Ô]: sTextoSaida = [Ô][Ô]
If cont = 71 Then SQL = SQL & [Ô][ô][Ô] & sTextoSaida & [Ô][ô], [Ô]: sTextoSaida = [Ô][Ô]
If cont = 73 Then SQL = SQL & [Ô][ô][Ô] & sTextoSaida & [Ô][ô], [Ô]: sTextoSaida = [Ô][Ô]
If cont = 75 Then SQL = SQL & [Ô][ô][Ô] & sTextoSaida & [Ô][ô], [Ô]: sTextoSaida = [Ô][Ô]
If cont = 77 Then SQL = SQL & [Ô][ô][Ô] & sTextoSaida & [Ô][ô], [Ô]: sTextoSaida = [Ô][Ô]
If cont = 79 Then SQL = SQL & [Ô][ô][Ô] & sTextoSaida & [Ô][ô], [Ô]: sTextoSaida = [Ô][Ô]
If cont = 81 Then SQL = SQL & [Ô][ô][Ô] & sTextoSaida & [Ô][ô], [Ô]: sTextoSaida = [Ô][Ô]
If cont = 83 Then SQL = SQL & [Ô][ô][Ô] & sTextoSaida & [Ô][ô], [Ô]: sTextoSaida = [Ô][Ô]

[ô]CAMPO QUE NAO QUERO
If cont = 85 Then sTextoSaida = [Ô][Ô]

[ô]QUANTOS GANHARAM COM 15 - 14 - 13 - 12 - 11
If cont = 87 Then SQL = SQL & [Ô][ô][Ô] & sTextoSaida & [Ô][ô], [Ô]: sTextoSaida = [Ô][Ô]
If cont = 89 Then SQL = SQL & [Ô][ô][Ô] & sTextoSaida & [Ô][ô], [Ô]: sTextoSaida = [Ô][Ô]
If cont = 91 Then SQL = SQL & [Ô][ô][Ô] & sTextoSaida & [Ô][ô], [Ô]: sTextoSaida = [Ô][Ô]
If cont = 93 Then SQL = SQL & [Ô][ô][Ô] & sTextoSaida & [Ô][ô], [Ô]: sTextoSaida = [Ô][Ô]
If cont = 95 Then SQL = SQL & [Ô][ô][Ô] & sTextoSaida & [Ô][ô], [Ô]: sTextoSaida = [Ô][Ô]

[ô]VALOR GANHO 15 - 14 - 13 - 12 - 11 PONTOS
[ô]If cont = 97 Then valor = sTextoSaida: valor = Format(valor, [Ô]###,###0.000[Ô]): SQL = SQL & [Ô][ô][Ô] & valor & [Ô][ô],[Ô]: sTextoSaida = [Ô][Ô]
[ô]If cont = 99 Then valor = sTextoSaida: valor = Format(valor, [Ô]###,###0.000[Ô]): SQL = SQL & [Ô][ô][Ô] & valor & [Ô][ô],[Ô]: sTextoSaida = [Ô][Ô]
[ô]If cont = 101 Then valor = sTextoSaida: valor = Format(valor, [Ô]###,###0.000[Ô]): SQL = SQL & [Ô][ô][Ô] & valor & [Ô][ô],[Ô]: sTextoSaida = [Ô][Ô]
[ô]If cont = 103 Then valor = sTextoSaida: valor = Format(valor, [Ô]###,###0.000[Ô]): SQL = SQL & [Ô][ô][Ô] & valor & [Ô][ô],[Ô]: sTextoSaida = [Ô][Ô]
[ô]If cont = 105 Then valor = sTextoSaida: valor = Format(valor, [Ô]###,###0.000[Ô]): SQL = SQL & [Ô][ô][Ô] & valor & [Ô][ô],[Ô]: sTextoSaida = [Ô][Ô]

If cont = 97 Then sTextoSaida = Format(sTextoSaida, [Ô]###,###0.000[Ô]): sTextoSaida = Replace(Format(sTextoSaida, [Ô]0.000[Ô]), [Ô],[Ô], [Ô].[Ô]): SQL = SQL & [Ô][ô][Ô] & sTextoSaida & [Ô][ô], [Ô]: sTextoSaida = [Ô][Ô]
If cont = 99 Then sTextoSaida = Format(sTextoSaida, [Ô]###,###0.000[Ô]): sTextoSaida = Replace(Format(sTextoSaida, [Ô]0.000[Ô]), [Ô],[Ô], [Ô].[Ô]): SQL = SQL & [Ô][ô][Ô] & sTextoSaida & [Ô][ô], [Ô]: sTextoSaida = [Ô][Ô]
If cont = 101 Then sTextoSaida = Format(sTextoSaida, [Ô]###,###0.000[Ô]): sTextoSaida = Replace(Format(sTextoSaida, [Ô]0.000[Ô]), [Ô],[Ô], [Ô].[Ô]): SQL = SQL & [Ô][ô][Ô] & sTextoSaida & [Ô][ô], [Ô]: sTextoSaida = [Ô][Ô]
If cont = 103 Then sTextoSaida = Format(sTextoSaida, [Ô]###,###0.000[Ô]): sTextoSaida = Replace(Format(sTextoSaida, [Ô]0.000[Ô]), [Ô],[Ô], [Ô].[Ô]): SQL = SQL & [Ô][ô][Ô] & sTextoSaida & [Ô][ô], [Ô]: sTextoSaida = [Ô][Ô]
If cont = 105 Then sTextoSaida = Format(sTextoSaida, [Ô]###,###0.000[Ô]): sTextoSaida = Replace(Format(sTextoSaida, [Ô]0.000[Ô]), [Ô],[Ô], [Ô].[Ô]): SQL = SQL & [Ô][ô][Ô] & sTextoSaida & [Ô][ô], [Ô]: sTextoSaida = [Ô][Ô]

[ô]If cont = 97 Then SQL = SQL & [Ô][ô][Ô] & sTextoSaida & [Ô][ô], [Ô]: sTextoSaida = [Ô][Ô]
[ô]If cont = 99 Then SQL = SQL & [Ô][ô][Ô] & sTextoSaida & [Ô][ô], [Ô]: sTextoSaida = [Ô][Ô]
[ô]If cont = 101 Then SQL = SQL & [Ô][ô][Ô] & sTextoSaida & [Ô][ô], [Ô]: sTextoSaida = [Ô][Ô]
[ô]If cont = 103 Then SQL = SQL & [Ô][ô][Ô] & sTextoSaida & [Ô][ô], [Ô]: sTextoSaida = [Ô][Ô]
[ô]If cont = 105 Then SQL = SQL & [Ô][ô][Ô] & sTextoSaida & [Ô][ô], [Ô]: sTextoSaida = [Ô][Ô]

[ô]ACUMULADO
If cont = 107 Then sTextoSaida = Format(sTextoSaida, [Ô]###,###0.000[Ô]): sTextoSaida = Replace(Format(sTextoSaida, [Ô]0.000[Ô]), [Ô],[Ô], [Ô].[Ô]): SQL = SQL & [Ô][ô][Ô] & sTextoSaida & [Ô][ô]) [Ô]: sTextoSaida = [Ô][Ô]

[ô]CAMPO QUE NAO QUERO
If cont = 109 Then sTextoSaida = [Ô][Ô]

If cont = 114 Then
dados.BeginTrans
[ô]Debug.Print (SQL)
dados.Execute SQL
dados.CommitTrans
cont = 51
sTextoSaida = [Ô][Ô]
contg = contg + 1
Else
cont = cont + 1
End If

Loop
Close #iArquivoEntrada
[ô]Agora, é só gravar o texto
Open sArquivoSaida For Output As #iArquivoSaida
Print #iArquivoSaida, sTextoSaida
Close #iArquivoSaida
If Err.Number = 0 Then
MsgBox [Ô]Arquivo importado com sucesso![Ô], vbOKOnly + vbInformation, [Ô]Importação[Ô]
End If
End Sub



Funciona perfeitamente pra mim da maneira que esta.

Oque eu preciso seria que ao clicar no botão cmdImportar

Ele fazer o download do arquivo para uma pasta especifica e descompactar e pegar o arquivo isso se tiver como.
GANDA.NICK 01/02/2013 15:28:41
#418583
Resposta escolhida
olá,


para fazer o download use a API URLDownloadToFile


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

Private Sub Command1_Click()
Dim sUrl As String, sArquivoZip As String

sUrl = [Ô]http://www1.caixa.gov.br/loterias/_arquivos/loterias/D_lotfac.zip[Ô]
sArquivoZip = App.Path & [Ô]\lotaria.zip[Ô]

[ô] Download the file.
URLDownloadToFile 0, sUrl, sArquivoZip, 0, 0

End Sub



Para descompactar use o code deste link:

http://www.vbforums.com/showthread.php?534899-vb6-Zipping-and-Unzipping-using-Shell32

Não esqueça de referenciar: [Ô]Microsoft Shell Controls and Automation[Ô]


para chamar:

Call Zip_Activity([Ô]UNZIP[Ô], caminhodoseuzip , App.Path)



espero ter ajudado

té +
KELVINCD 01/02/2013 16:57:05
#418597
Opa funciono perfeitamente porem.
ao extrair os arquivos do zip.
vem um arquivo com nome
D_LOTFAC no formato de html
ai não consigo usalo para dar sequencia do programa preciso converter essa pagina em bloco de notas ou alguma forma que o programa leia.
GANDA.NICK 01/02/2013 17:39:24
#418603
é o arquivo que fizeste o download


Call Zip_Activity([Ô]UNZIP[Ô], App.Path & [Ô]\lotaria.zip[Ô], App.Path)  

KELVINCD 01/02/2013 17:47:46
#418605
Opa funciono perfeitamente porem.
ao extrair os arquivos do zip.
vem um arquivo com nome
D_LOTFAC no formato de html
ai não consigo usalo para dar sequencia do programa preciso converter essa pagina em bloco de notas ou alguma forma que o programa leia.
GANDA.NICK 01/02/2013 17:50:53
#418606
altera a extensao


Name App.Path & [Ô]\d_LOTFAC.htm[Ô] As App.Path & [Ô]\d_LOTFAC.txt[Ô]



com o bocadinho de procura vc acha este tipo de coisas rápido...
Tópico encerrado , respostas não são mais permitidas