Ir para conteúdo
Fórum Script Brasil
  • 0

WebService para Cotação de Moedas


Jhonas

Pergunta

Pessoal, pesquisando na net, vi que muitos se interessam por terem em seus projetos um webservice que de em tempo real a cotação de moedas, porem, não existem exemplos praticos que possibilitem o seu uso sem muitas complicações... então resolvi disponibilizar a todos um exmplo feito em delphi 7, mas creio que não aja problemas em outras versões tambem.

Em um form coloque um botão e um StringGrid

No StringGrid, modifique as propriedades:

ColCount = 2

DefaultColWidth = 200

RowCount = 9

agora vamos ao código:

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Grids;

type
  TForm1 = class(TForm)
    Button1: TButton;
    StringGrid1: TStringGrid;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

uses UrlMon;

procedure TForm1.Button1Click(Sender: TObject);
var
   caminho, linha, s, f, g : string;
   arq : TextFile;
   cc, x, y, z : integer;

   Function Download(FSource, FDest: String): Boolean;
   begin
     try
       Result := UrlDownloadToFile(nil, PChar(Fsource),PChar(FDest), 0, nil) = 0;
     except
       Result := False;
     end;
   end;

begin
   // WEB SERVICE DE COTAÇÃO DO DOLAR

   cc := 0; x := 0; y := 0; z := 0;
   caminho := 'C:\cotacao.htm';
   Download('http://cotacao.republicavirtual.com.br/web_cotacao.php?formato=javascript', caminho);
   AssignFile ( arq, caminho);
   Reset ( arq );

   while not Eof(arq) do
   begin
      inc(cc);
      Readln ( arq, linha);
      s := trim(linha);
      while Pos('''', S) > 0 do
         S[Pos('''', S)] := ' ';

      if cc > 2 then
         begin

            if Pos(':',s) > 0 then
               begin
                  f := trim(copy(s,1,Pos(':',s)-1));
                  g := trim(copy(s,Pos(':',s)+1,20));

                  // MOSTRAR A COTAÇÃO EM UM STRINGGRID
                  StringGrid1.Cells[0,0]:= 'MOEDA';
                  StringGrid1.Cells[1,0]:= 'COTAÇÃO';
                  StringGrid1.Cells[0,cc-2]:= f;
                  StringGrid1.Cells[1,cc-2]:= g;
               end;
         end;
   end;
   CloseFile ( arq );

end;

end.

O resultado no StringGrig será parecido com isso

dolar_comercial_compra.....1,5740 ,

dolar_comercial_venda.......1,5755 ,

dolar_paralelo_compra.......1,5900 ,

dolar_paralelo_venda.........1,7300 ,

euro_dolar_compra............1,4130 ,

euro_dolar_venda..............1,4140 ,

euro_real_compra..............2,2250 ,

euro_real_venda................2,2270

o webservice é disponibilizado por este link

http://www.republicavirtual.com.br/cotacao/exemplos.php

OBS: voces poderão observar que é feito o download do arquivo (usei o Formato de retorno: javascript) para ser manipulado e disposto num StringGrid

URL: http://cotacao.republicavirtual.com.br/web...mato=javascript

abraços

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

A URL do provedor teve uma modificação

http://www.republicavirtual.com.br/cotacao/exemplos.php

O resultado será mostrado na StringGrid em 25 a 30 segundos

OBS: Acho que o provedor não está mais atualizando os valores.

Código com a URL alterada

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Grids;

type
  TForm1 = class(TForm)
    Button1: TButton;
    StringGrid1: TStringGrid;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

uses UrlMon;

procedure TForm1.Button1Click(Sender: TObject);
var
   caminho, linha, s, f, g : string;
   arq : TextFile;
   cc, x, y, z : integer;

   Function Download(FSource, FDest: String): Boolean;
   begin
     try
       Result := UrlDownloadToFile(nil, PChar(Fsource),PChar(FDest), 0, nil) = 0;
     except
       Result := False;
     end;
   end;

begin
   // WEB SERVICE DE COTAÇÃO DO DOLAR

   cc := 0; x := 0; y := 0; z := 0;
   caminho := 'C:\cotacao.htm';
   Download('http://cotacao.republicavirtual.com.br/web_cotacao.php?formato=javascript', caminho);
   AssignFile ( arq, caminho);
   Reset ( arq );

   while not Eof(arq) do
   begin
      inc(cc);
      Readln ( arq, linha);
      s := trim(linha);
      while Pos('''', S) > 0 do
         S[Pos('''', S)] := ' ';

      if cc > 2 then
         begin

            if Pos(':',s) > 0 then
               begin
                  f := trim(copy(s,1,Pos(':',s)-1));
                  g := trim(copy(s,Pos(':',s)+1,20));

                  // MOSTRAR A COTAÇÃO EM UM STRINGGRID
                  StringGrid1.Cells[0,0]:= 'MOEDA';
                  StringGrid1.Cells[1,0]:= 'COTAÇÃO';
                  StringGrid1.Cells[0,cc-2]:= f;
                  StringGrid1.Cells[1,cc-2]:= g;
               end;
         end;
   end;
   CloseFile ( arq );

end;

end.

abraço

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,8k
×
×
  • Criar Novo...