Merkez Bankasından Döviz Kurlarını Okuma

Yazdığınız makaleleri ve üyelerimizin işine yarayacağını düşündüğünüz kodlarınızı gönderebilirsiniz. Bu foruma soru sormayın!
Cevapla
akdatilla
Üye
Mesajlar: 292
Kayıt: 02 Nis 2006 06:04
Konum: Antalya

Merkez Bankasından Döviz Kurlarını Okuma

Mesaj gönderen akdatilla »

Kod: Tümünü seç

procedure TForm1.ListeBtnClick(Sender: TObject);
var
  iNode : IXMLNode;
  c,r:integer;
begin
     XMLDocument1.FileName := 'http://www.tcmb.gov.tr/kurlar/today.xml';
     XMLDocument1.Active := True;
     r:=1;
     iNode := XMLDocument1.DocumentElement.ChildNodes.First;
     if iNode <> nil then
     Begin
          Kayitlar.RowCount:=XMLDocument1.DocumentElement.ChildNodes.Count+1;
     end else Kayitlar.RowCount:=2;
     Kayitlar.ColCount:=7;
     Kayitlar.Cells[0,0]:='No';
     Kayitlar.Cells[1,0]:='Kod';
     Kayitlar.Cells[2,0]:='Adı';
     Kayitlar.Cells[3,0]:='Alış';
     Kayitlar.Cells[4,0]:='Satış';
     Kayitlar.Cells[5,0]:='Ef.Alış';
     Kayitlar.Cells[6,0]:='Ef.Satış';

     while iNode <> nil do
     begin
          c:=0;
          Kayitlar.Cells[c,r]:=inttostr(r);inc(c);
          Kayitlar.Cells[c,r]:=iNode.Attributes['Kod'];inc(c);
          Kayitlar.Cells[c,r]:=iNode.ChildNodes.Nodes['Isim'].Text;inc(c);
          Kayitlar.Cells[c,r]:=iNode.ChildNodes.Nodes['ForexBuying'].Text;inc(c);
          Kayitlar.Cells[c,r]:=iNode.ChildNodes.Nodes['ForexSelling'].Text;inc(c);
          Kayitlar.Cells[c,r]:=iNode.ChildNodes.Nodes['BanknoteBuying'].Text;inc(c);
          Kayitlar.Cells[c,r]:=iNode.ChildNodes.Nodes['BanknoteSelling'].Text;inc(c);
          inc(r);
          iNode := iNode.NextSibling;
     end;

     XMLDocument1.Active := False;
end;
Kullanıcı avatarı
rsimsek
Admin
Mesajlar: 4482
Kayıt: 10 Haz 2003 01:48
Konum: İstanbul

Re: Merkez Bankasından Döviz Kurlarını Okuma

Mesaj gönderen rsimsek »

Sanırım örnek biraz eksik olmuş. Kod içinde kullanılan değişkenler hakkında bilgi verilmemiş. Doğrusu DFM 'in de (Alt + F12) ile kodlarının yapıştırılması gerekirdi :wink:
Bilgiyi paylaşarak artıralım! Hayatı kolaylaştıralım!!
Kullanıcı avatarı
sabanakman
Kıdemli Üye
Mesajlar: 3081
Kayıt: 17 Nis 2006 08:11
Konum: Ah bi Antalya olaydı keşke (Ankara)

Re: Merkez Bankasından Döviz Kurlarını Okuma

Mesaj gönderen sabanakman »

Aslında bazı durumlarda bu gibi gizemli noktaların açıklığa kavuşturulmaması, araştırmacı gazetecilik ruhunu tetikleyeceğinden daha sağlıklı olabileceği düşüncesindeyim :wink:
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
Kullanıcı avatarı
conari
Üye
Mesajlar: 2102
Kayıt: 27 Nis 2006 03:10
Konum: İstanbul & Gebze Karışık

Re: Merkez Bankasından Döviz Kurlarını Okuma

Mesaj gönderen conari »

sabanakman yazdı:Aslında bazı durumlarda bu gibi gizemli noktaların açıklığa kavuşturulmaması, araştırmacı gazetecilik ruhunu tetikleyeceğinden daha sağlıklı olabileceği düşüncesindeyim :wink:
Hiç bilmeyen birisi için de tırmalamaktan öteye gidemeyeceği düşüncesindeyim. :roll:
Bir kelimenin anlamını öğretsen bile yeter..
ResimResim
khanco
Üye
Mesajlar: 226
Kayıt: 01 Eki 2007 04:39
Konum: İzmir
İletişim:

Re: Merkez Bankasından Döviz Kurlarını Okuma

Mesaj gönderen khanco »

Tırmalatacak eksikler bunlarmı.

Kod: Tümünü seç


TForm1 = class(TForm)
    LISTEBUTTON: TButton;
    XMLDocument1: TXMLDocument;
    KAYITLAR: TStringGrid;
Kullanıcı avatarı
sabanakman
Kıdemli Üye
Mesajlar: 3081
Kayıt: 17 Nis 2006 08:11
Konum: Ah bi Antalya olaydı keşke (Ankara)

Re: Merkez Bankasından Döviz Kurlarını Okuma

Mesaj gönderen sabanakman »

Hiç bilmeyen için tırmalamanın miktarı yoktur, muhakkak tırmalayacaktır ama insanoğlunun da karakteristik bir özelliği vardır. Çözüme ne kadar ihtiyaç duyuyorsa, başarılı sonuç elde etmesi o orandadır. Yani çözüme muhtaçsa çözer :wink:
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
Kullanıcı avatarı
dynamo
Üye
Mesajlar: 96
Kayıt: 21 Haz 2005 02:05
Konum: istanbul

Re: Merkez Bankasından Döviz Kurlarını Okuma

Mesaj gönderen dynamo »

örnek bir uygulama daha açıklayıcı olacaktır.



Günlük Döviz / Altın Kurları Alma

Resim

XMLDocument nesnesi ,XML datası üzerinde işlem yapmamızı sağlar.XML datası ilkel bir veritabanı gibi düşünülebilir.Bu veritabanın tablo ve alan adlarını tıpkı Table nesnesi gibi rahatça alıp kullabilmeye imkan tanır.Bu nesne Delphi'de Internet sekmesi altında bulunmaktadır.Bir XML datasında tablo ve alan adları aşağıdaki gibi ayırtedilebilir:



- <altinkaynak>
- <DOVIZ>
<ADI>Tarih</ADI>
<ALIS>07.02.2011 08:45:55</ALIS>
<SATIS />
</DOVIZ>
- <DOVIZ>
<ADI>B</ADI>
<ALIS>62.5500</ALIS>
<SATIS>68.5000</SATIS>
</DOVIZ>
- <DOVIZ>
<ADI>18</ADI>
<ALIS>48.6960</ALIS>
<SATIS>57.5000</SATIS>
</DOVIZ>


<altinkaynak>, tablo adı.<DOVIZ> ile başlayan field adı altında değerleri <ADI> , <ALIS> , <SATIS> okuyoruz.kısaca xml data yapısı ve okuma işlemi böyledir. http://www.tcmb.gov.tr/kurlar/today.xml adresinden döviz , http://xml.altinkaynak.com.tr/altin.xml adresinden altın bilgileri alan program:

Kod: Tümünü seç

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, xmldom, XMLIntf, StdCtrls, msxmldom, XMLDoc, ExtCtrls, Grids;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    StringGrid1: TStringGrid;
    Timer1: TTimer;
    Button3: TButton;
    Button4: TButton;
    Button5: TButton;
    XMLDocument1: TXMLDocument;
    OpenDialog1: TOpenDialog;
    Button6: TButton;
    StringGrid2: TStringGrid;
    Label2: TLabel;
    Label1: TLabel;
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure StringGrid1SelectCell(Sender: TObject; ACol, ARow: Integer;
      var CanSelect: Boolean);
    procedure Timer1Timer(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    procedure Button5Click(Sender: TObject);
    procedure Button6Click(Sender: TObject);
  private
    { Private declarations }
    isim,alis,satis,balis,bsatis,euro:WideString;
    satir,sutun:integer;
    baslangic:IXMLNode;
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  kontrol:integer=0;

implementation

uses Unit2, Unit3;

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
   StringGrid1.colwidths[0]:=140;
   StringGrid1.Cells[0,0]:='Para Birimi';
   StringGrid1.Cells[1,0]:='Alış Fiyatı';
   StringGrid1.Cells[2,0]:='Satış Fiyatı';
   StringGrid1.Cells[3,0]:='Banka Alış Fiyatı';
   StringGrid1.Cells[4,0]:='Banka Satış Fiyatı';
   StringGrid1.Cells[5,0]:='1 Euro Karşılığı';

   StringGrid2.Cells[0,0]:='Altın Birimi';
   StringGrid2.Cells[1,0]:='Alış Fiyatı';
   StringGrid2.Cells[2,0]:='Alış Fiyatı';

   Button1.Click;
   Button6.Click;

end;

procedure TForm1.Button1Click(Sender: TObject);
var i:integer;
begin
   if kontrol=0 then
   begin
      XMLDocument1.Active:=false;
      XMLDocument1.FileName:='http://www.tcmb.gov.tr/kurlar/today.xml';
      XMLDocument1.Active:=true;
   end;
   i:=1;
   baslangic:=XMLDocument1.DocumentElement.ChildNodes .FindNode('Currency');
   repeat
      isim:=baslangic.ChildNodes.Nodes['Isim'].Text;
      alis:=baslangic.ChildNodes.Nodes['ForexBuying'].Text;
      satis:=baslangic.ChildNodes.Nodes['ForexSelling'].Text;
      balis:=baslangic.ChildNodes.Nodes['BanknoteBuying'].Text;
      bsatis:=baslangic.ChildNodes.Nodes['BanknoteSelling'].Text;
      euro:=baslangic.ChildNodes.Nodes['CrossRateEuro'].Text;
      StringGrid1.Cells[0,i]:=isim;
      StringGrid1.Cells[1,i]:=alis;
      StringGrid1.Cells[2,i]:=satis;
      StringGrid1.Cells[3,i]:=balis;
      StringGrid1.Cells[4,i]:=bsatis;
      StringGrid1.Cells[5,i]:=euro;
      i:=i+1;
      baslangic:=baslangic.NextSibling;
   Until baslangic=nil;

end;

procedure TForm1.Button2Click(Sender: TObject);
var ism,als,sati,bals,bsati,eur:string;
begin
   ism:=StringGrid1.Cells[0,satir];
   als:=StringGrid1.Cells[1,satir];
   if (als='') and (bals='') then eur:=StringGrid1.Cells[5,satir];
   sati:=StringGrid1.Cells[2,satir];
   bals:=StringGrid1.Cells[3,satir];
   bsati:=StringGrid1.Cells[4,satir];
   form2:=TForm2.Create(Self);
   form2.Label1.Caption:='Alış : '+als;
   form2.Label2.Caption:='Satış : '+als;
   form2.Label3.Caption:='Banka Alış : '+bals;
   form2.Label4.Caption:='Banka Satış : '+bsati;
   form2.Showmodal;
   Form2.Free;
end;

procedure TForm1.StringGrid1SelectCell(Sender: TObject; ACol,
  ARow: Integer; var CanSelect: Boolean);
begin
   satir:=Arow;
   sutun:=Acol;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
var gun:String;
begin 
   case DayOfWeek(Date) of
      1: gun:='Pazar';
      2: gun:='Pazartesi';
      3: gun:='Salı';
      4: gun:='Çarşamba';
      5: gun:='Perşembe';
      6: gun:='Cuma';
      7: gun:='Cumartesi';
   end;
   Form1.Caption:='Günlük Döviz / Altın Kurları Tarih: '+datetostr(date)+ ' - ' + Gun + ' ' + timetostr(time);
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
   XMLDocument1.SaveToFile('C:\'+datetostr(date)+'.xml');
end;

procedure TForm1.Button4Click(Sender: TObject);
begin
   OpenDialog1.Execute;
   if Opendialog1.FileName<>'' then
   begin
      XMLDocument1.Active:=false;
      XMLDocument1.FileName:=OpenDialog1.FileName;
      XMLDocument1.Active:=true;
      kontrol:=1;
      Button1.Click;
   end;
end;

procedure TForm1.Button5Click(Sender: TObject);
begin
   kontrol:=0;
   Button1.Click;
end;

procedure TForm1.Button6Click(Sender: TObject);
var i:integer;
begin
   if kontrol=0 then
   begin
      XMLDocument1.Active:=false;
      XMLDocument1.FileName:='http://xml.altinkaynak.com.tr/altin.xml';
      XMLDocument1.Active:=true;
   end;
   i:=1;
   baslangic:=XMLDocument1.DocumentElement.ChildNodes .FindNode('DOVIZ');
   repeat
      isim:=baslangic.ChildNodes.Nodes['ADI'].Text;
      if isim<>'Tarih' then begin
         alis:=baslangic.ChildNodes.Nodes['ALIS'].Text;
         satis:=baslangic.ChildNodes.Nodes['SATIS'].Text;

         StringGrid2.Cells[0,i]:=isim;
         StringGrid2.Cells[1,i]:=alis;
         StringGrid2.Cells[2,i]:=satis;

         i:=i+1;
      end;
      baslangic:=baslangic.NextSibling;
   Until baslangic=nil; 

end;

end.
Dosya ekleri
kur.rar
(46.77 KiB) 560 kere indirildi
neu84
Üye
Mesajlar: 307
Kayıt: 06 Oca 2011 11:27

Re: Merkez Bankasından Döviz Kurlarını Okuma

Mesaj gönderen neu84 »

Ellerine sağlık kardeş çok güzel olmuş.. :bravo:
Cevapla