Merhaba,
Xml üzerinden kur değerlerini çekmeye çalışıyorum ancak yapamıyorum. Bunun yanında bir de project1.exe raised exception class EReaderror with message property contentrangeınstancelength does not exits hatası veriyor bilgisi olan yardımcı olabilir mi
IdHttp
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
Re: IdHttp
Eğer Merkez bankasındaki günlük kurları okumaya çalışıyorsanız. Size kendi kullandığım XML den döviz kuru okuyan kod.
Uses eklemeleri
İstediğiniz gibi düzenlersiniz. Ben kendi ihtiyacımı karşılamak adına böyle kullanmıştım.
Uses eklemeleri
Kod: Tümünü seç
xmldom, XMLIntf, msxmldom, XMLDoc
Kod: Tümünü seç
procedure TFormDeneme.ButtonGunlukKurBilgisiniTCMBOkuClick(Sender: TObject);
var
XMLNode : IXMLNode;
XMLDocumentKur: TXMLDocument;
begin
XMLDocumentKur := TXMLDocument.Create(Self);
try
try
XMLDocumentKur.Active:=false;
XMLDocumentKur.FileName:='http://www.tcmb.gov.tr/kurlar/today.xml';
XMLDocumentKur.Active:=true;
except
raise Exception.Create('İnternet bağlantınızı kontrol edin. TCMB günlük kur bilgisine ulaşılamadı!');
end;
//Bülten numarası buradan alabilirsiniz.
//XMLDocumentKur.DocumentElement.Attributes['Bulten_No'];
//Kur tarihi
//XMLDocumentKur.DocumentElement.Attributes['Tarih'];
XMLNode := XMLDocumentKur.DocumentElement.ChildNodes.FindNode('Currency');
repeat
if XMLNode.HasAttribute('CurrencyCode') then
begin
if (XMLNode.Attributes['CurrencyCode'] = 'USD') then //Dolar için kur oku
begin
if XMLNode.ChildNodes.Nodes['ForexSelling'].Text = '' then
raise Exception.Create('Merkez bankası Satış kur bilgisi hatalı. Gelen bilgi içeriği "' + XMLNode.ChildNodes.Nodes['ForexSelling'].Text + '"');
//Kur bilgisi buradan alınacak
//XMLNode.ChildNodes.Nodes['ForexSelling'].Text;
end
else if (XMLNode.Attributes['CurrencyCode'] = 'EUR') then //Euro için kur oku
begin
if XMLNode.ChildNodes.Nodes['ForexSelling'].Text = '' then
raise Exception.Create('Merkez bankası Satış kur bilgisi hatalı. Gelen bilgi içeriği "' + XMLNode.ChildNodes.Nodes['ForexSelling'].Text + '"');
//Kur bilgisi buradan alınacak
//XMLNode.ChildNodes.Nodes['ForexSelling'].Text;
end;
end;
XMLNode := XMLNode.NextSibling;
until XMLNode = nil;
finally
XMLDocumentKur.Free;
end;
end;
PostgreSQL - Delphi - Linux
-
- Üye
- Mesajlar: 7
- Kayıt: 10 Tem 2019 02:18
Re: IdHttp
3ddark yazdı: ↑01 Ağu 2019 03:07 Eğer Merkez bankasındaki günlük kurları okumaya çalışıyorsanız. Size kendi kullandığım XML den döviz kuru okuyan kod.
Uses eklemeleriKod: Tümünü seç
xmldom, XMLIntf, msxmldom, XMLDoc
İstediğiniz gibi düzenlersiniz. Ben kendi ihtiyacımı karşılamak adına böyle kullanmıştım.Kod: Tümünü seç
procedure TFormDeneme.ButtonGunlukKurBilgisiniTCMBOkuClick(Sender: TObject); var XMLNode : IXMLNode; XMLDocumentKur: TXMLDocument; begin XMLDocumentKur := TXMLDocument.Create(Self); try try XMLDocumentKur.Active:=false; XMLDocumentKur.FileName:='http://www.tcmb.gov.tr/kurlar/today.xml'; XMLDocumentKur.Active:=true; except raise Exception.Create('İnternet bağlantınızı kontrol edin. TCMB günlük kur bilgisine ulaşılamadı!'); end; //Bülten numarası buradan alabilirsiniz. //XMLDocumentKur.DocumentElement.Attributes['Bulten_No']; //Kur tarihi //XMLDocumentKur.DocumentElement.Attributes['Tarih']; XMLNode := XMLDocumentKur.DocumentElement.ChildNodes.FindNode('Currency'); repeat if XMLNode.HasAttribute('CurrencyCode') then begin if (XMLNode.Attributes['CurrencyCode'] = 'USD') then //Dolar için kur oku begin if XMLNode.ChildNodes.Nodes['ForexSelling'].Text = '' then raise Exception.Create('Merkez bankası Satış kur bilgisi hatalı. Gelen bilgi içeriği "' + XMLNode.ChildNodes.Nodes['ForexSelling'].Text + '"'); //Kur bilgisi buradan alınacak //XMLNode.ChildNodes.Nodes['ForexSelling'].Text; end else if (XMLNode.Attributes['CurrencyCode'] = 'EUR') then //Euro için kur oku begin if XMLNode.ChildNodes.Nodes['ForexSelling'].Text = '' then raise Exception.Create('Merkez bankası Satış kur bilgisi hatalı. Gelen bilgi içeriği "' + XMLNode.ChildNodes.Nodes['ForexSelling'].Text + '"'); //Kur bilgisi buradan alınacak //XMLNode.ChildNodes.Nodes['ForexSelling'].Text; end; end; XMLNode := XMLNode.NextSibling; until XMLNode = nil; finally XMLDocumentKur.Free; end; end;
Çok teşekkür ediyorum, sağ olun