XML parse ve web sevisleri

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
lazkerem
Üye
Mesajlar: 4
Kayıt: 01 Haz 2005 09:57

XML parse ve web sevisleri

Mesaj gönderen lazkerem »

merhaba ben sitenizin yeni üyesiyim yarın saat 13 te teslim edilecek bir ödevim var sizden acil yardım bekliyorum

t.c merkez bankası nın sayfasında xml dökümanı var
http://www.tcmb.gov.tr/kurlar/today.xml
adres bu
bu adresteki bilgiler alınarak delphi 7 de xml parse edilecek ve bu parse edilen bilgiler kullanılarak WEB servisi yapılacak
delphi 8 kabul değil kurlardan sadece dolar ve euroyu almamız yeterli maksat yapıldığı belli olsun
Kullanıcı avatarı
husonet
Admin
Mesajlar: 2962
Kayıt: 25 Haz 2003 02:14
Konum: İstanbul
İletişim:

Mesaj gönderen husonet »

Arama yaptınızmı? Yanılmıyorsam Forumda bu konu çok konuşuldu Arayalım zaman kazanalım ;)

Kolay Gelsin...

Gazete manşetleri
* DİKKAT :Lütfen forum kurallarını okuyalım ve uyalım...!
* Warez,crack vs. paylaşımı kesinlikle yasaktır.
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Mesaj gönderen mrmarman »

@husonet, durum ödev işi, bu seferlik hoş görelim...

- Ama karşılık olarak Internet'ten veri alma kısmı dahil edilmiş kodu bütün olarak isteyelim... :wink: Saat biraz geç oldu ama sabah test edersin... Denenmiştir...

Kod: Tümünü seç

Type TParite = Packed Record
  USD_DA,
  USD_DS,
  USD_EA,
  USD_ES,
  EUR_DA,
  EUR_DS,
  EUR_EA,
  EUR_ES  : String;
end;

Function TCMerkezXMLParse(Liste:TStrings):TParite;
Var
  Satir : String;
  Sayac : Integer;
begin
  Sayac := 0;
  Repeat
    Satir := Liste[Sayac];
    If Pos('CurrencyCode="USD"', Satir) > 0 then
    begin
      System.Delete(Satir, 1, Pos('CurrencyCode="USD"', Satir)+Length('CurrencyCode="USD"')-1);
      System.Delete(Satir, 1, Pos('<ForexBuying>', Satir) + Length('<ForexBuying>')-1);
      Result.USD_DA := Copy(Satir, 1, Pos('<', Satir)-1);
      System.Delete(Satir, 1, Pos('<ForexSelling>', Satir) + Length('<ForexSelling>')-1);
      Result.USD_DS := Copy(Satir, 1, Pos('<', Satir)-1);
      System.Delete(Satir, 1, Pos('<BanknoteBuying>', Satir) + Length('<BanknoteBuying>')-1);
      Result.USD_EA := Copy(Satir, 1, Pos('<', Satir)-1);
      System.Delete(Satir, 1, Pos('<BanknoteSelling>', Satir) + Length('<BanknoteSelling>')-1);
      Result.USD_ES := Copy(Satir, 1, Pos('<', Satir)-1);
    end;
    If Pos('CurrencyCode="EUR"', Satir) > 0 then
    begin
      System.Delete(Satir, 1, Pos('CurrencyCode="EUR"', Satir)+Length('CurrencyCode="EUR"')-1);
      System.Delete(Satir, 1, Pos('<ForexBuying>', Satir) + Length('<ForexBuying>')-1);
      Result.EUR_DA := Copy(Satir, 1, Pos('<', Satir)-1);
      System.Delete(Satir, 1, Pos('<ForexSelling>', Satir) + Length('<ForexSelling>')-1);
      Result.EUR_DS := Copy(Satir, 1, Pos('<', Satir)-1);
      System.Delete(Satir, 1, Pos('<BanknoteBuying>', Satir) + Length('<BanknoteBuying>')-1);
      Result.EUR_EA := Copy(Satir, 1, Pos('<', Satir)-1);
      System.Delete(Satir, 1, Pos('<BanknoteSelling>', Satir) + Length('<BanknoteSelling>')-1);
      Result.EUR_ES := Copy(Satir, 1, Pos('<', Satir)-1);
    end;
    Inc(Sayac);
  Until Sayac > Liste.Count-1;
end;

Kod: Tümünü seç

procedure TForm1.Button1Click(Sender: TObject);
Var
  Sonuclar : TParite;
begin
  Sonuclar := TCMerkezXMLParse(Memo1.Lines);
  With Sonuclar do
    ShowMessageFmt('USD_DA:%s, USD_DS:%s, USD_EA:%s, USD_ES:%s'#13'EUR_DA:%s, EUR_DS:%s, EUR_EA:%s, EUR_ES:%s', [USD_DA, USD_DS, USD_EA, USD_ES, EUR_DA, EUR_DS, EUR_EA, EUR_ES ]);
end;
- Sana yapmak için kalan, internetten bu sayfayı alıp MEMO içine koydurmak... :idea:
Resim
Resim ....Resim
lazkerem
Üye
Mesajlar: 4
Kayıt: 01 Haz 2005 09:57

Mesaj gönderen lazkerem »

arkadaşlar inanın bu kadar çabuk cevap vereceğinizi bilmiyordum bilsem gece bakardım cevap gelmişmi diye cevaplarınız için teşekkürler
bu arada ben olayın parse kısmını hallettim isterseniz kodu sizinle paylaşayım

Kod: Tümünü seç

procedure TForm1.Button1Click(Sender: TObject);
var
z,s,aranan,alis:string;
bolmeyeri,alinan,yer:integer;
begin
z:=IdHTTP1.Get('http://www.tcmb.gov.tr/kurlar/today.xml');
s:=z;
aranan:='US DOLLAR';
yer:=pos(aranan,s);
yer:=yer+length(aranan);
s:=copy(s,yer,length(s)-yer);
s:=trim(s);
alis:=copy(s,1,length(s)-yer);
 aranan:='<ForexBuying>';
yer:=pos(aranan,s);
yer:=yer+length(aranan);
s:=copy(s,yer,length(s)-yer);
s:=trim(s);
alis:=copy(s,1,length(s)-yer);
label5.Caption:=copy(alis,1,6);
aranan:='<ForexSelling>';
yer:=pos(aranan,s);
yer:=yer+length(aranan);
s:=copy(s,yer,length(s)-yer);
s:=trim(s);
alis:=copy(s,1,length(s)-yer);
label6.Caption:=copy(alis,1,6);
gönderdiğiniz cevaplar içinde teşekkürler
şimdi sorun bu bilgileri kullanarak web servisi oluşturmada
ben biraz uğraştım ama galiba olmuyor yardım ederseniz sevinirim bu arada bugün 1 de teslim etmem gerekiyor
programın bütününü nasıl göndereceğimi bilmiyorum söylerseniz onu da gönderirim
En son lazkerem tarafından 02 Haz 2005 08:27 tarihinde düzenlendi, toplamda 1 kere düzenlendi.
fduman
Moderator
Mesajlar: 2749
Kayıt: 17 Ara 2004 12:02
Konum: Ankara

Mesaj gönderen fduman »

Bence fazla hoşgörülü davranmışsın. Hiçbir programlama ödevi bir gün içinde istenmez. Arkadaş bu zamana kadar yatmış gibime geliyor.
fduman
Moderator
Mesajlar: 2749
Kayıt: 17 Ara 2004 12:02
Konum: Ankara

Mesaj gönderen fduman »

Web servisini Indy ile değil SOAP bileşenleri ile oluşturacaksın. Örnekleri Delphi Demo klasöründe mevcut.

Google da aratırsan bir çok Web Service kaynak koduna ulaşılabiliyor.
lazkerem
Üye
Mesajlar: 4
Kayıt: 01 Haz 2005 09:57

Mesaj gönderen lazkerem »

peki diyelimki web servisini oluşturdum döviz kurlarını web servisi içinde nasıl çağıracağım
yani ben yukarıda yazdığım gibi bu kurları elde edebiliyorum ama bunu web servisi içinde nasıl yapacağım

bugüne kadar da yattığım doğrudur ama bu ödevin 1. vize yerine sayılacağını dün öğrendim :cry:
lazkerem
Üye
Mesajlar: 4
Kayıt: 01 Haz 2005 09:57

Mesaj gönderen lazkerem »

bu arada internette ulaştığım kaynaklar delphi 8 de anlatıyor fakat hocamız delphi8 de kabul etmiyor
sanırım delphi 8 de ödevi yapmak çok basit herşey hazırmış galiba
belki yabancı sitelerde vardır onlarıda inceleyemiyorum maalesef ingilizcem yok
fduman
Moderator
Mesajlar: 2749
Kayıt: 17 Ara 2004 12:02
Konum: Ankara

Mesaj gönderen fduman »

http://community.borland.com/article/0, ... 99,00.html

Burada örnek bir WebService'in nasıl oluşturulacağı anlatılmış. Resimli bir şekilde. İçinde nick hodges'a ait güzel bir webservice sitesinin linki de var. İyi bir başlangıç noktası olabilir.
Cevapla