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
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;