Usuário com melhor resposta
Buscar valor de arquivos .txt em um servidor FPT

Pergunta
-
Ola pessoal!!
Preciso buscar valores de diversos arquivos .txt que estão hospedados em um servidor fpt.
Por exemplo:
ftp://ftp.cetip.com.br/MediaCDI/20150102.txt ftp://ftp.cetip.com.br/MediaCDI/20150105.txt ftp://ftp.cetip.com.br/MediaCDI/20150106.txt
...
(Estes links estão na C2:C9999)
Queria ajuda pra criar um código que entre no link da coluna C e retorne o texto do arquivo na coluna D.
Alguém pode me ajudar?
Respostas
-
Primeiro, você tem que baixar os dados do FTP e depois processá-los.
Para baixar um arquivo, adapte o código abaixo:
#If VBA7 Then Public Declare PtrSafe Function URLDownloadToFile Lib "urlmon" Alias "URLDownloadToFileA" (ByVal pCaller As LongPtr _ , ByVal szURL As String _ , ByVal szFileName As String _ , ByVal dwReserved As LongPtr _ , ByVal lpfnCB As LongPtr) As Long #Else Public 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 #End If Private Sub Baixar() 'Declaração de variáveis Dim sURL As String Dim sDestino As String Dim blSucesso As Boolean 'Altere as informações abaixo de acordo com sua necessidade sURL = "http://www.ambienteoffice.com.br/topo.jpg" sDestino = ThisWorkbook.Path & "\" & "topo.jpg" 'Baixa o arquivo da internet blSucesso = DownloadArquivo(sURL, sDestino) If blSucesso Then MsgBox "Arquivo baixado com sucesso!" _ , vbInformation _ , "Informação" Else MsgBox "Erro ao tentar baixar o arquivo!" _ , vbCritical _ , "Erro!" End If End Sub Private Function DownloadArquivo(sURL As String, sDestino As String) As Boolean Dim l As Long l = URLDownloadToFile(0, sURL, sDestino, 0, 0) If l = 0 Then DownloadArquivo = True End Function
Felipe Costa Gualberto - http://www.ambienteoffice.com.br
- Marcado como Resposta Felipe Costa GualbertoMVP, Moderator quinta-feira, 5 de novembro de 2015 14:22
Todas as Respostas
-
-
Primeiro, você tem que baixar os dados do FTP e depois processá-los.
Para baixar um arquivo, adapte o código abaixo:
#If VBA7 Then Public Declare PtrSafe Function URLDownloadToFile Lib "urlmon" Alias "URLDownloadToFileA" (ByVal pCaller As LongPtr _ , ByVal szURL As String _ , ByVal szFileName As String _ , ByVal dwReserved As LongPtr _ , ByVal lpfnCB As LongPtr) As Long #Else Public 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 #End If Private Sub Baixar() 'Declaração de variáveis Dim sURL As String Dim sDestino As String Dim blSucesso As Boolean 'Altere as informações abaixo de acordo com sua necessidade sURL = "http://www.ambienteoffice.com.br/topo.jpg" sDestino = ThisWorkbook.Path & "\" & "topo.jpg" 'Baixa o arquivo da internet blSucesso = DownloadArquivo(sURL, sDestino) If blSucesso Then MsgBox "Arquivo baixado com sucesso!" _ , vbInformation _ , "Informação" Else MsgBox "Erro ao tentar baixar o arquivo!" _ , vbCritical _ , "Erro!" End If End Sub Private Function DownloadArquivo(sURL As String, sDestino As String) As Boolean Dim l As Long l = URLDownloadToFile(0, sURL, sDestino, 0, 0) If l = 0 Then DownloadArquivo = True End Function
Felipe Costa Gualberto - http://www.ambienteoffice.com.br
- Marcado como Resposta Felipe Costa GualbertoMVP, Moderator quinta-feira, 5 de novembro de 2015 14:22
-
Pessoal,
Tem dois artigos que podem te ajudar a ter outras ideias.
http://ecode10.com/artigo/238/Lendo-Arquivo-txt-usando-Visual-Studio-NET-2005
Eu gosto de criar um Windows Service para fazer isso de forma automática.
Depois de ler os arquivos eu geralmente apago ou mudo ele de lugar usando o mesmo serviço.
http://ecode10.com/artigo/1080/Deletando-todos-os-arquivos
http://ecode10.com/artigo/1152/Trabalhando-com-diretorio-e-arquivo
Espero ter ajudado. Se ajudei, favor marcar no fórum falando que foi útil.
Mauricio Junior - Comunidade www.ecode10.com