Delphi İle TCMB den Döviz Kurlarını Çekme
Aşağıdaki procedure de USD ve EURO kuru çekilmiştir
Kurlar diye bir adet memory table oluşturulmuştur
Kurlar Memory Table Field Yapısı
object Kurlar: TJvMemoryData
FieldName = ‘DOVTUR’
DataType = ftString
Size = 100
FieldName = ‘KUR’
DataType = ftFloat
Procedure DovizKurlari;
var
XMLNode: IXMLNode;
I: Integer;
XMLDocumentKur: TXMLDocument;
Begin
XMLDocumentKur := TXMLDocument.Create(Application);
try
try
XMLDocumentKur.Active := false;
XMLDocumentKur.FileName := 'https://www.tcmb.gov.tr/kurlar/today.xml';
XMLDocumentKur.Active := true;
Except on E: Exception do
Begin
Msg_HataMesaji('İnternet bağlantınızı kontrol edin. TCMB günlük kur bilgisine ulaşılamadı!');
end;
end;
Kurlar.Open;
Kurlar.EmptyTable;
if XMLDocumentKur.Active then
Begin
XMLNode := XMLDocumentKur.DocumentElement.ChildNodes.FindNode('Currency');
repeat
if XMLNode.HasAttribute('CurrencyCode') then
begin
if (XMLNode.Attributes['CurrencyCode'] = 'USD') then
begin
Kurlar.Append;
KurlarDOVTUR.AsString := 'USD';
KurlarKUR.AsFloat := StrToFloatDef(StringReplace(XMLNode.ChildNodes.Nodes['ForexSelling'].Text, '.', ',', [rfReplaceAll]), 0);
DolarKuru := StrToFloatDef(StringReplace(XMLNode.ChildNodes.Nodes['ForexSelling'].Text, '.', ',', [rfReplaceAll]), 0);
Kurlar.Post;
end
else if (XMLNode.Attributes['CurrencyCode'] = 'EUR') then
begin
Kurlar.Append;
KurlarDOVTUR.AsString := 'EURO';
KurlarKUR.AsFloat := StrToFloatDef(StringReplace(XMLNode.ChildNodes.Nodes['ForexSelling'].Text, '.', ',', [rfReplaceAll]), 0);
EuroKuru := StrToFloatDef(StringReplace(XMLNode.ChildNodes.Nodes['ForexSelling'].Text, '.', ',', [rfReplaceAll]), 0);
Kurlar.Post;
end;
end;
XMLNode := XMLNode.NextSibling;
until XMLNode = nil;
End
Else
Begin
if Msg_Soru('USD ve EURO Kurunu Elle Tanımlamak İster misiniz ? ') then
Begin
Kurlar.Append;
KurlarDOVTUR.AsString := 'USD';
KurlarKUR.AsFloat := StrToFloatDef(InputBox('','USD Kurunu Giriniz','1'),1);
DolarKuru := KurlarKUR.AsFloat;
Kurlar.Post;
Kurlar.Append;
KurlarDOVTUR.AsString := 'EURO';
KurlarKUR.AsFloat := StrToFloatDef(InputBox('','EURO Kurunu Giriniz','1'),1);
EuroKuru := KurlarKUR.AsFloat ;
Kurlar.Post;
End
Else
Begin
Kurlar.Append;
KurlarDOVTUR.AsString := 'USD';
KurlarKUR.AsFloat := 1;
DolarKuru := 1;
Kurlar.Post;
Kurlar.Append;
KurlarDOVTUR.AsString := 'EURO';
KurlarKUR.AsFloat := 1;
EuroKuru := 1;
Kurlar.Post;
End;
End;
finally
XMLDocumentKur.Free;
end;
End;