Delphi Can

Orjinalini görmek için tıklayınız: Merkez Bankası Döviz Kurları Hakkında
Şu anda (Arşiv) modunu görüntülemektesiniz. Orjinal Sürümü Görüntüle internal link
Sayfalar: 1 2
Selamlar

Foruma baktığımda farklı sitelerden döviz kurları alınıyor.
Fakat direkt olarak Merkez Bankasından istenen bir tarihteki döviz kurlarına ulaşabileceğimiz bir servis olup olmadığını bilen var mıdır.

Teşekkürler
http://www.delphican.com/kur-alma.html
İncleyin işinize yarar. Kolay gelsin
http://www.tcmb.gov.tr/kurlar/kurlar_tr.html içersinde kaynağı göster deyince şöyle aşağıdaki linke ulaştım,
http://www.tcmb.gov.tr/kurlar/201804/13042018.xml

detaylı; 'http://www.tcmb.gov.tr/kurlar/'+ yilAy +'/' + gunAyYil + '.xml'
şeklinde ulaşabilirsiniz.
Selamlar

bu linki incelemiştim.
benim amacım Merkez Bankasından kurları almak istiyorum ve özellikle geçmişe dönük olanları
merkez bankasının today.xls olarak verdiği bir yer var amaç geri dönük veri çekmek

esistem hocam teşekkürler buda işimi görür sağolasın
Yazdığım mantıkla ilgili linkten çekebilirsiniz diye düşünüyorum.
(13-04-2018, Saat: 17:18)esistem Adlı Kullanıcıdan Alıntı: [ -> ]Yazdığım mantıkla ilgili linkten çekebilirsiniz diye düşünüyorum.

aynı anda yazmışız yazdığınız işimi görür teşekkürler
DB kaydı yapacaksanız bu verikeri buradan toplu rapor alarak bir defaya mahsus, alınan raporu import edebilirainiz.
merkez bankası https adrese geçtiği için artık döviz kurum çalışmıyor. SSL ilede bir türlü yapamadım. Nasıl yapılacağı hakkında fikri olan varmıdır.
XMLDocument1.Active:=false;
//      XMLDocument1.FileName:='https://www.tcmb.gov.tr/kurlar/today.xml';
     XMLDocument1.FileName:=Adres;
     XMLDocument1.Active:=true;
     //if LogVar then Writeln('today.xml alındı.');
     baslangic:=XMLDocument1.DocumentElement.ChildNodes.FindNode('Currency');
     i:=1;
     repeat
        try
        Doviz := baslangic.Attributes['Kod'];
        alis  := baslangic.ChildNodes.Nodes['ForexBuying'].Text;
        satis := baslangic.ChildNodes.Nodes['ForexSelling'].Text;
        balis := baslangic.ChildNodes.Nodes['BanknoteBuying'].Text;
        bsatis:= baslangic.ChildNodes.Nodes['BanknoteSelling'].Text;

         i:=i+1;
         baslangic  := baslangic.NextSibling;
         except
            on E: Exception do
               begin
               //if LogVar then Writeln('Bağlantı Hatası ['+U1+','+U2+','+U3+'] ['+E.Message+']' );
              end;
         end;
        until baslangic = nil;


ben bu şekilde alıyorum.
Merhaba.

* SSL (https) destekli XML download ve parse işlemi örneğidir.

Uses System.Net.HttpClientComponent, Xml.XMLIntf,  Xml.XMLDoc;

function TCMB_DovizKurlari( aList: TStrings ):boolean;
var
  aClient       : System.Net.HttpClientComponent.TNetHTTPClient;
  aXMLDocument  : IXMLDocument;
  aXML  : String;
  aNode : IXMLNode;

  Kod,
  Isim,
  ForexBuying,
  ForexSelling,
  BanknoteBuying,
  BanknoteSelling : String;
begin
  Result := False;
  // XML downloader with SSL/"https" support...
  aClient := TNetHTTPClient.Create(nil);
  try
    aXML    := aClient.Get( 'https://www.tcmb.gov.tr/kurlar/today.xml' ).ContentAsString;
    Result := True;
    aList.Clear;

    aXMLDocument := TXMLDocument.Create(nil);
    aXMLDocument.ParseOptions := aXMLDocument.ParseOptions+[poPreserveWhiteSpace];
    aXMLDocument.LoadFromXML( aXML );
    aNode :=  aXMLDocument.DocumentElement.ChildNodes.FindNode('Currency');
    while aNode <> nil do begin
      Kod   :=  aNode.Attributes['Kod'];
      Isim            := aNode.ChildNodes.Nodes['Isim'].Text;
      ForexBuying     := aNode.ChildNodes.Nodes['ForexBuying'].Text;
      ForexSelling    := aNode.ChildNodes.Nodes['ForexSelling'].Text;
      BanknoteBuying  := aNode.ChildNodes.Nodes['BanknoteBuying'].Text;
      BanknoteSelling := aNode.ChildNodes.Nodes['BanknoteSelling'].Text;
        aList.Add( Format( '%s (%s) : %s - %s / %s - %s', [Isim, Kod, ForexBuying, ForexSelling, BanknoteBuying, BanknoteSelling]) );
      // ...

      aNode := aNode.NextSibling; // ntTEXT
      aNode := aNode.NextSibling; // Currency
    end;
  finally
    aClient.Free;
  end;
end;



Temsili Kullanımı :

procedure TForm1.Button2Click(Sender: TObject);
var
  aList : TStringList;
begin
  aList := TStringList.Create;
  try
    if TCMB_DovizKurlari( aList ) then Showmessage( aList.Text );

  finally
    aList.Free;
  end;
end;

Sayfalar: 1 2