1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.

Dica Cotação de Moeda Banco Central

Discussão em 'Sugestões e Diversos' iniciado por rhemati, Maio 21, 2015.

  1. rhemati

    rhemati Membro Participativo

    Pessoal Boa noite.
    Segue um código para salvar cotações de moedas diariamente.

    Código:
    DEF VAR ch-ie   AS COM-HANDLE NO-UNDO.
    DEF VAR c-url   AS CHAR NO-UNDO.
    def var c-data  as char no-undo.
    
    assign  c-data  =   '20150521'
            c-url   =   'http://www4.bcb.gov.br/Download/fechamento/' + c-data + '.csv'.
    
    MESSAGE 'c-url' c-url
        VIEW-AS ALERT-BOX INFO BUTTONS OK.
    
    CREATE "InternetExplorer.Application" ch-ie.
    ch-ie:navigate(c-url,,,,).
    ch-ie:VISIBLE = TRUE.
    /*ch-ie:QUIT().*/
    RELEASE OBJECT ch-ie NO-ERROR.
    
    Agnaldo curtiu isso.
  2. tavio_g

    tavio_g Sem Pontuação

    Legal, mas como automatizar do download desse arquivo sem que o IE fique perguntando o que quer fazer com ele?
    Isso já resolveria o problema.

    Abraços
  3. rhemati

    rhemati Membro Participativo

    É o que eu estou tentando agora.
    Quero abrir pelo chrome, ou pelo firefox e eles mesmo salvar por dia sozinho.
    E aí vou fazer um schedule para salvar diariamente.
  4. tavio_g

    tavio_g Sem Pontuação

    Então, eu consegui isso, mas em VBS. ele grava o arquivo e depois eu leio a partir do progress.
    abaixo o programa:
    mesi = month(now)
    if mesi < 10 then
    mes = "0" + CStr(mesi)
    else
    mes = CStr(mesi)
    end if

    diai = day(now) - 1
    if diai < 10 then
    dia = "0" + CStr(diai)
    else
    dia = CStr(diai)

    end if


    HTTPDownload "http://www4.bcb.gov.br/Download/fechamento/" + CStr(Year(now)) + mes + dia + ".csv", "C:\temp\" + CStr(Year(now)) + mes + dia + ".csv"

    Sub HTTPDownload( myURL, myPath )

    Dim i, objFile, objFSO, objHTTP, strFile, strMsg
    Const ForReading = 1, ForWriting = 2, ForAppending = 8

    Set objFSO = CreateObject( "Scripting.FileSystemObject" )

    If objFSO.FolderExists( myPath ) Then
    strFile = objFSO.BuildPath( myPath, Mid( myURL, InStrRev( myURL, "/" ) + 1 ) )
    ElseIf objFSO.FolderExists( Left( myPath, InStrRev( myPath, "\" ) - 1 ) ) Then
    strFile = myPath
    Else
    WScript.Echo "ERROR: Target folder not found."
    Exit Sub
    End If

    Set objFile = objFSO.OpenTextFile( strFile, ForWriting, True )

    Set objHTTP = CreateObject( "WinHttp.WinHttpRequest.5.1" )

    objHTTP.Open "GET", myURL, False
    objHTTP.Send

    For i = 1 To LenB( objHTTP.ResponseBody )
    objFile.Write Chr( AscB( MidB( objHTTP.ResponseBody, i, 1 ) ) )
    Next

    objFile.Close( )
    End Sub
  5. rlfritz

    rlfritz Membro Ativo

    Boa tarde!
    Eu tenho uma rotina que grava diariamente a cotação do Dólar e do Euro ... buscando os dados no Banco Central. Eu executo a rotina na crontab do linux.
    Código:
    
    DEFINE VARIABLE c-data AS CHARACTER   NO-UNDO.
    DEFINE VARIABLE d-atu AS DATE      NO-UNDO.
    
    ASSIGN  d-atu = TODAY - 1   /* executar o programa no início do dia, buscando o fechamento das moedas do dia anterior */
            c-data = STRING(YEAR(d-atu),"9999") + STRING(MONTH(d-atu),"99") +  STRING(DAY(d-atu),"99").
    
    /* obtencao do arquivo CSV com as cotacoes */
    
    DEFINE VARIABLE c-comando AS CHARACTER   NO-UNDO.
    ASSIGN c-comando = "cd /tmp/cotacao;wget -nv http://www4.bcb.gov.br/download/fechamento/" + c-data +  ".csv" .
    
    OS-COMMAND SILENT VALUE(c-comando).
    
    FILE-INFO:FILE-NAME = "/tmp/cotacao/" + c-data +  ".csv" .
    IF FILE-INFO:FILE-SIZE = ? THEN DO:
    
         /* aqui faz a leitura do arquivo CSV e grava as cotações */
    
    END.
    
    
  6. Darckles

    Darckles Sem Pontuação

    Boa noite,

    Fiz um programinha em JAVA que utiliza parametros passados em progress, que pode ajudar baixar o arquivo csv de cotação de moeda, sem a necessidade de autorizar o download pelo IE.

    Arquivos Anexados:

Compartilhe esta Página