M.Bankası Döviz Kurlarını Delphi'ye almak
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
M.Bankası Döviz Kurlarını Delphi'ye almak
Arkadaşlar
Hazırladığım programda hesaplama işleri için günlük döviz kurlarını bir DBGrid içerisine çekmem gerekiyor.Bunu yaparken http://www.tcmb.gov.tr/kurlar/today.xml adresindeki xml dosyasını DBGride çekmek istiyorum.
Bunu Delphi ile nasıl yapabilirim
Yardımlarınız için şimdiden teşekkür ediyorum
Hazırladığım programda hesaplama işleri için günlük döviz kurlarını bir DBGrid içerisine çekmem gerekiyor.Bunu yaparken http://www.tcmb.gov.tr/kurlar/today.xml adresindeki xml dosyasını DBGride çekmek istiyorum.
Bunu Delphi ile nasıl yapabilirim
Yardımlarınız için şimdiden teşekkür ediyorum
Ben html için yapmıştım. XML zaten daha test aşamasındaymış, bunu kullanman daha iyi olur.
viewtopic.php?t=328
Kolay gelsin.
viewtopic.php?t=328
Kolay gelsin.
Mustafa hocam
Ben bu merkez bankası kodunun içinde kayboldum.
Yapmak istediğim 5 kolonlu bir DBGrid içerisine ilk 2 kolon datada sabit olmak şartıyla sadece Doviz Alış - Doviz Satış - Efektif Aliş - Efektif Satış hücrelerine 18 adet doviz kurlarını çekmek.
Sabit olan kolonlarda Doviz kodu 'USD' ve Doviz Adı 'Amerikan Doları' şeklinde kayıt mevcut.
Delphide daha yeni sayılırız!
Yardımcı olursan sevinirim
Saygılar
Ben bu merkez bankası kodunun içinde kayboldum.
Yapmak istediğim 5 kolonlu bir DBGrid içerisine ilk 2 kolon datada sabit olmak şartıyla sadece Doviz Alış - Doviz Satış - Efektif Aliş - Efektif Satış hücrelerine 18 adet doviz kurlarını çekmek.
Sabit olan kolonlarda Doviz kodu 'USD' ve Doviz Adı 'Amerikan Doları' şeklinde kayıt mevcut.
Delphide daha yeni sayılırız!
Yardımcı olursan sevinirim
Saygılar
-
- Üye
- Mesajlar: 23
- Kayıt: 26 Eki 2003 04:19
Niye o kadar kasıyosunki.....
XML dosyasını Parse eden dünya kadar bileşen var. http://www.torry.net ordan bir tane (Stefanın parserı iyidir) XML parser indir. Ve bahsettiğin XML dosyasından tüm değerleri oku....
Ya da Adminini dediği gibi tek tek oku ama html bilgisi gerek....
Abdullah
XML dosyasını Parse eden dünya kadar bileşen var. http://www.torry.net ordan bir tane (Stefanın parserı iyidir) XML parser indir. Ve bahsettiğin XML dosyasından tüm değerleri oku....
Ya da Adminini dediği gibi tek tek oku ama html bilgisi gerek....
Abdullah
Ne kadar ilginç insanlarsınız..
Bir şey biliyorsanız ve paylaşmak istiyorsanız adam gibi paylaşın.
Yok eğer paylaşmayacaksanız cevap yazmayın.
Bu Delphi yi insanlar anasının karnında öğrenmedi.
Şu anda tek başıma bir distribütör firmanın Araç Bakım projesini bitirmek üzereyim.Yanii bir yerde takıldık diye hemde yeni olduğumuzu yazıyoruz ve siz agresim bir şekilde
Kasıyorsun diye cevap veriyorsun!
Bravo diyorum ve Saygılar sunuyorum
Bir şey biliyorsanız ve paylaşmak istiyorsanız adam gibi paylaşın.
Yok eğer paylaşmayacaksanız cevap yazmayın.
Bu Delphi yi insanlar anasının karnında öğrenmedi.
Şu anda tek başıma bir distribütör firmanın Araç Bakım projesini bitirmek üzereyim.Yanii bir yerde takıldık diye hemde yeni olduğumuzu yazıyoruz ve siz agresim bir şekilde
Kasıyorsun diye cevap veriyorsun!
Bravo diyorum ve Saygılar sunuyorum
-
- Üye
- Mesajlar: 43
- Kayıt: 19 Haz 2003 12:26
BEN BUNU c# TA YAPMISTIM MANTIK OLARAK BURDA KULLANDIGIM BILAESENIN BENZERI D7 OLMASI LAZIM BEN BURDA DATA TABLE KULLANDIM SEN ONA KARSILIK DELPHIDE DATASET KULLANABILIRSIN
ISALLAH SANA BAZI KONULARDA YARDIMCI OLUR BBU ARADA O XML LINKI TEST A BELLI BI SATIRA KADAR YANI 19 SATIR OKUMAN YETERLI HATTA BEN BURDA SADECE GIDIP DOLAR KURUNU ALAN PROGRAM YAZDIM KOLAY GELSIN BU KODUDA BEN BIR ARKADASTAN OGRENMISTIM
{
DataTable dt = new DataTable();
// DataTable nesnemizi yaratıyoruz
DataRow dr;
// DataTable ın satırlarını tanımlıyoruz.
dt.Columns.Add(new DataColumn("Adı", typeof(string)));
dt.Columns.Add(new DataColumn("Kod", typeof(string)));
dt.Columns.Add(new DataColumn("Döviz alış", typeof(string)));
dt.Columns.Add(new DataColumn("Döviz satış", typeof(string)));
dt.Columns.Add(new DataColumn("Efektif alış", typeof(string)));
dt.Columns.Add(new DataColumn("Efektif Satış", typeof(string)));
// DataTableımıza 6 sütün ekliyoruz ve değişken tiplerini tanımlıyoruz.
XmlTextReader rdr = new XmlTextReader("http://www.tcmb.gov.tr/kurlar/today.xml");
// XmlTextReader nesnesini yaratıyoruz ve parametre olarak xml dokümanın urlsini veriyoruz
// XmlTextReader urlsi belirtilen xml dokümanlarına hızlı ve forward-only giriş imkanı sağlar.
XmlDocument myxml = new XmlDocument();
// XmlDocument nesnesini yaratıyoruz.
myxml.Load(rdr);
// Load metodu ile xml yüklüyoruz
XmlNode tarih = myxml.SelectSingleNode("/Tarih_Date/@Tarih");
XmlNodeList mylist = myxml.SelectNodes("/Tarih_Date/Currency");
XmlNodeList adi = myxml.SelectNodes("/Tarih_Date/Currency/Isim");
XmlNodeList kod = myxml.SelectNodes("/Tarih_Date/Currency/@Kod");
XmlNodeList doviz_alis = myxml.SelectNodes("/Tarih_Date/Currency/ForexBuying");
XmlNodeList doviz_satis = myxml.SelectNodes("/Tarih_Date/Currency/ForexSelling");
XmlNodeList efektif_alis = myxml.SelectNodes("/Tarih_Date/Currency/BanknoteBuying");
XmlNodeList efektif_satis = myxml.SelectNodes("/Tarih_Date/Currency/BanknoteSelling");
// XmlNodeList cinsinden her bir nodu, SelectSingleNode metoduna nodların xpathini parametre olarak
// göndererek tanımlıyoruz.
dataGrid1.CaptionText=tarih.InnerText.ToString()+" tarihli merkez bankası kur bilgileri";
// datagridimin captionu ayarlıyoruz.
int x = 19;
/* Burada xmlde bahsettiğim - bence- mantık hatasından dolayı x gibi bir değişken tanımladım.
bu x =19 DataTable a sadece 19 satır eklenmesini sağlıyor. çünkü xml dökümanında 19. node dan sonra
güncel kur bilgileri değil Euro dönüşüm kurları var ve bu node dan sonra yapı ilk 18 node ile tutmuyor
Bence ayrı bir xml dökümanda tutulması gerekirdi.
*/
for (int i = 0 ; i < x; i++)
{
string a,b;
b="USD";
a=kod.Item(i).InnerText.ToString();
//MessageBox.Show(a);
if (b==a)
{
dr = dt.NewRow();
dr[0] = adi.Item(i).InnerText.ToString(); // i. adi nodunun içeriği
// Adı isimli DataColumn un satırlarını /Tarih_Date/Currency/Isim node ları ile dolduruyoruz.
dr[1] = kod.Item(i).InnerText.ToString();
// Kod satırları
dr[2] = doviz_alis.Item(i).InnerText.ToString();
// Döviz Alış
dr[3] = doviz_satis.Item(i).InnerText.ToString();
// Döviz Satış
dr[4] = efektif_alis.Item(i).InnerText.ToString();
// Efektif Alış
dr[5] = efektif_satis.Item(i).InnerText.ToString();
// Efektif Satış.
dt.Rows.Add(dr);
}
return dt;
ISALLAH SANA BAZI KONULARDA YARDIMCI OLUR BBU ARADA O XML LINKI TEST A BELLI BI SATIRA KADAR YANI 19 SATIR OKUMAN YETERLI HATTA BEN BURDA SADECE GIDIP DOLAR KURUNU ALAN PROGRAM YAZDIM KOLAY GELSIN BU KODUDA BEN BIR ARKADASTAN OGRENMISTIM
{
DataTable dt = new DataTable();
// DataTable nesnemizi yaratıyoruz
DataRow dr;
// DataTable ın satırlarını tanımlıyoruz.
dt.Columns.Add(new DataColumn("Adı", typeof(string)));
dt.Columns.Add(new DataColumn("Kod", typeof(string)));
dt.Columns.Add(new DataColumn("Döviz alış", typeof(string)));
dt.Columns.Add(new DataColumn("Döviz satış", typeof(string)));
dt.Columns.Add(new DataColumn("Efektif alış", typeof(string)));
dt.Columns.Add(new DataColumn("Efektif Satış", typeof(string)));
// DataTableımıza 6 sütün ekliyoruz ve değişken tiplerini tanımlıyoruz.
XmlTextReader rdr = new XmlTextReader("http://www.tcmb.gov.tr/kurlar/today.xml");
// XmlTextReader nesnesini yaratıyoruz ve parametre olarak xml dokümanın urlsini veriyoruz
// XmlTextReader urlsi belirtilen xml dokümanlarına hızlı ve forward-only giriş imkanı sağlar.
XmlDocument myxml = new XmlDocument();
// XmlDocument nesnesini yaratıyoruz.
myxml.Load(rdr);
// Load metodu ile xml yüklüyoruz
XmlNode tarih = myxml.SelectSingleNode("/Tarih_Date/@Tarih");
XmlNodeList mylist = myxml.SelectNodes("/Tarih_Date/Currency");
XmlNodeList adi = myxml.SelectNodes("/Tarih_Date/Currency/Isim");
XmlNodeList kod = myxml.SelectNodes("/Tarih_Date/Currency/@Kod");
XmlNodeList doviz_alis = myxml.SelectNodes("/Tarih_Date/Currency/ForexBuying");
XmlNodeList doviz_satis = myxml.SelectNodes("/Tarih_Date/Currency/ForexSelling");
XmlNodeList efektif_alis = myxml.SelectNodes("/Tarih_Date/Currency/BanknoteBuying");
XmlNodeList efektif_satis = myxml.SelectNodes("/Tarih_Date/Currency/BanknoteSelling");
// XmlNodeList cinsinden her bir nodu, SelectSingleNode metoduna nodların xpathini parametre olarak
// göndererek tanımlıyoruz.
dataGrid1.CaptionText=tarih.InnerText.ToString()+" tarihli merkez bankası kur bilgileri";
// datagridimin captionu ayarlıyoruz.
int x = 19;
/* Burada xmlde bahsettiğim - bence- mantık hatasından dolayı x gibi bir değişken tanımladım.
bu x =19 DataTable a sadece 19 satır eklenmesini sağlıyor. çünkü xml dökümanında 19. node dan sonra
güncel kur bilgileri değil Euro dönüşüm kurları var ve bu node dan sonra yapı ilk 18 node ile tutmuyor
Bence ayrı bir xml dökümanda tutulması gerekirdi.
*/
for (int i = 0 ; i < x; i++)
{
string a,b;
b="USD";
a=kod.Item(i).InnerText.ToString();
//MessageBox.Show(a);
if (b==a)
{
dr = dt.NewRow();
dr[0] = adi.Item(i).InnerText.ToString(); // i. adi nodunun içeriği
// Adı isimli DataColumn un satırlarını /Tarih_Date/Currency/Isim node ları ile dolduruyoruz.
dr[1] = kod.Item(i).InnerText.ToString();
// Kod satırları
dr[2] = doviz_alis.Item(i).InnerText.ToString();
// Döviz Alış
dr[3] = doviz_satis.Item(i).InnerText.ToString();
// Döviz Satış
dr[4] = efektif_alis.Item(i).InnerText.ToString();
// Efektif Alış
dr[5] = efektif_satis.Item(i).InnerText.ToString();
// Efektif Satış.
dt.Rows.Add(dr);
}
return dt;
-
- Üye
- Mesajlar: 23
- Kayıt: 26 Eki 2003 04:19
Arkadaşım beni yanlış anladın. Ben yukarıda XML i boşver zaten testmiş http sayfasından oku denildiği için canım sıkıldı. XML bilen biri XML i kullanmanın http sayfasını okumaktan daha iyi olacağını bilirdi değil mi? ben orda getirilen öneriye biraz bozuldum. + sana kaynak gösterdim. Steafen'ın XML parserını torry den bul. O zaten parse ediyo diye. Tutup sana program yazacak değilim....ademiz yazdı:Ne kadar ilginç insanlarsınız..
Bir şey biliyorsanız ve paylaşmak istiyorsanız adam gibi paylaşın.
Yok eğer paylaşmayacaksanız cevap yazmayın.
Bu Delphi yi insanlar anasının karnında öğrenmedi.
Şu anda tek başıma bir distribütör firmanın Araç Bakım projesini bitirmek üzereyim.Yanii bir yerde takıldık diye hemde yeni olduğumuzu yazıyoruz ve siz agresim bir şekilde
Kasıyorsun diye cevap veriyorsun!
Bravo diyorum ve Saygılar sunuyorum
Merhaba,
biraz daha sakin, rahat olalım arkadaşlar. Hemen alınmaya, bozulmaya gerek yok, burda amaç birbirimize yardımcı olmak.
Birkaç noktaya değinmek istiyorum :
1. Burda verilen cevapların hiçbirisi doğru diye bir garanti yok. Bunu forum kurallarında da belirttim. Test edip kullanmanız ve yedekli çalışmanız her zaman için en doğrusu.
2. Ben arkadaşa XML'i boşver diye birşey söylemedim. En sevmediğim olaylardan biri de, söylemediğim birşeyin bana isnat edilmesi
. Ben olsam http'yi kullanırdım dedim ve yaptığım bir örneğin kodlarını ve yapma yolumu gösterdim. Zaten başka bir arkadaşta sağolsun XML'den alma yolunu göndermiş.
Ben halen test aşamaşında bir sayfadan bilgi almanın doğru olmadığını düşünüyorum ama karar sizin tabii ki de
ademiz, kullandığın yöntemle ilgili halen soruların varsa sorabilirsin.
Kolay gelsin.
biraz daha sakin, rahat olalım arkadaşlar. Hemen alınmaya, bozulmaya gerek yok, burda amaç birbirimize yardımcı olmak.
Birkaç noktaya değinmek istiyorum :
1. Burda verilen cevapların hiçbirisi doğru diye bir garanti yok. Bunu forum kurallarında da belirttim. Test edip kullanmanız ve yedekli çalışmanız her zaman için en doğrusu.
2. Ben arkadaşa XML'i boşver diye birşey söylemedim. En sevmediğim olaylardan biri de, söylemediğim birşeyin bana isnat edilmesi

Ben halen test aşamaşında bir sayfadan bilgi almanın doğru olmadığını düşünüyorum ama karar sizin tabii ki de

ademiz, kullandığın yöntemle ilgili halen soruların varsa sorabilirsin.
Kolay gelsin.
-
- Üye
- Mesajlar: 3
- Kayıt: 08 Kas 2003 10:52
- Konum: İstanbul & Washington
Sağol Admin
Aşağıdaki kodla işimi gördüm
Saygılar
**********************************************
procedure TdvzForm.BitBtn1Click(Sender: TObject);
var
s,alis,satis,aranan: String;
aranand:ARRAY [1..100] OF String;
yer,i,j : Integer;
begin
ProgressBar1.Visible := true;
s:=IdHTTP1.Get('http://tcmb.gov.tr/kurlar/today.html');
DATAForm.dovizADOTable1.Last;
DATAForm.dovizADOTable1.first;
for j:=0 to DATAForm.dovizADOTable1.RecordCount-1 do
begin
aranand[j]:=DATAForm.dovizADOTable1.FieldByname('Ad').AsString;
aranan:=aranand[j];
ProgressBar1.Position :=j;
yer:=pos(aranan,s);
if yer=0 then
begin
showmessage('Kur bilgisi bulunamadı.');
exit;
end
else
begin
yer:=yer+length(aranan);
s:=copy(s,yer,length(s)-yer);
s:=trim(s);
alis:=copy(s,1,9);
DATAForm.dovizADOTable1.Edit;
DATAForm.dovizADOTable1.FieldByName('DovizAlis').AsString := alis;
s:=copy(s,10,length(s)-9);
s:=trim(s);
satis:=copy(s,1,9);
DATAForm.dovizADOTable1.FieldByName('DovizSatis').AsString := satis;
DATAForm.dovizADOTable1.Next;
end;
end;
ProgressBar1.Visible := false;
Aşağıdaki kodla işimi gördüm
Saygılar
**********************************************
procedure TdvzForm.BitBtn1Click(Sender: TObject);
var
s,alis,satis,aranan: String;
aranand:ARRAY [1..100] OF String;
yer,i,j : Integer;
begin
ProgressBar1.Visible := true;
s:=IdHTTP1.Get('http://tcmb.gov.tr/kurlar/today.html');
DATAForm.dovizADOTable1.Last;
DATAForm.dovizADOTable1.first;
for j:=0 to DATAForm.dovizADOTable1.RecordCount-1 do
begin
aranand[j]:=DATAForm.dovizADOTable1.FieldByname('Ad').AsString;
aranan:=aranand[j];
ProgressBar1.Position :=j;
yer:=pos(aranan,s);
if yer=0 then
begin
showmessage('Kur bilgisi bulunamadı.');
exit;
end
else
begin
yer:=yer+length(aranan);
s:=copy(s,yer,length(s)-yer);
s:=trim(s);
alis:=copy(s,1,9);
DATAForm.dovizADOTable1.Edit;
DATAForm.dovizADOTable1.FieldByName('DovizAlis').AsString := alis;
s:=copy(s,10,length(s)-9);
s:=trim(s);
satis:=copy(s,1,9);
DATAForm.dovizADOTable1.FieldByName('DovizSatis').AsString := satis;
DATAForm.dovizADOTable1.Next;
end;
end;
ProgressBar1.Visible := false;
- AliGüzelbey
- Üye
- Mesajlar: 17
- Kayıt: 12 Eyl 2003 09:06
Merhaba Arkadaşlar
Yasemin Congar'ın gönderdiği kodla bende döviz kurlarını almak istedim ama kodu bir türlü çalıştıramadım.
Forma IdHTTP bileşenini ekledim fakat
s:=IdHTTP1.Get('http://tcmb.gov.tr/kurlar/today.html'); satırında
(The ISA Server denies the specified Uniform Resource Locator (URL) hatasını veriyor.
internete server üzerinden ADLS 512 K ile bağlanıyorum.
Yasemin Congar'ın gönderdiği kodla bende döviz kurlarını almak istedim ama kodu bir türlü çalıştıramadım.
Forma IdHTTP bileşenini ekledim fakat
s:=IdHTTP1.Get('http://tcmb.gov.tr/kurlar/today.html'); satırında
(The ISA Server denies the specified Uniform Resource Locator (URL) hatasını veriyor.
internete server üzerinden ADLS 512 K ile bağlanıyorum.
- AliGüzelbey
- Üye
- Mesajlar: 17
- Kayıt: 12 Eyl 2003 09:06