XML Post Gelen Mesaj

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
cvheneburi
Üye
Mesajlar: 95
Kayıt: 07 Eki 2010 03:55

XML Post Gelen Mesaj

Mesaj gönderen cvheneburi »

arkadaşlar merhaba ben sms ve mail gönderme programı hazırlıyorum xml dosyası ile gönderdiğim mesaj karşılığında sms sistemi bana bir id numarası veriyor bu id numarasına göre raporlama yaparken gönderilen mesajlardan kaçtanesinin iletildği kaçtanesinin hatalı olduğu kaçtanesinin beklemede olduğunu gösteren şu mesaj geliyor ;

<SONUC>
<BEKLEYEN></BEKLEYEN>
<ILETILEN>5074304824,5058543005</ILETILEN>
<HATALI></HATALI>
</SONUC>

bu mesajı ben veritabanındaki bekleyen iletilen hatalı alanlara sayı olarak yazdırmak istiyorum bunu bu mesaj ile yapa bilirmiyim yoksa sistem teknik servisinden bunla ilgili bir xml yapısı mı istemem lazım...

2. bir sorum da gelen bu mesajı string gride aktarıyorum fakat <ILETİLEN> tagının içerisindeki numaraları alt alta yazdırmak istiyorum bu şeklilde olduğu zaman tag içerisindeki kayıtları tek satırda yazıyor gelen bu cevap üzerinden ilgili sütünda alt alta yazdırmam mümkün mü
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4740
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Re: XML Post Gelen Mesaj

Mesaj gönderen mrmarman »

Forumda PARSE olarak bulabileceğin bir yapıdır.
Nasıl çalıştığını kolayca anlayabilirsin.

Bu kod sana yardımcı olacaktır. :idea:

Kod: Tümünü seç

procedure XMLParseToStrinGrid( strXML:String; Grid:TStringGrid );
  procedure SutunDoldur( strIcerik, strAra: String; Grid:TStringGrid; iSutunNo: Integer );
  Var
    iSat : Integer;
  begin
    Grid.Cells[iSutunNo, 0] := strAra;
    iSat := 0;
    system.Delete( strIcerik, 1, Pos(strAra, strIcerik) + Length(strAra)-1);
    strIcerik := Trim(Copy(strIcerik, 1, Pos('<', strIcerik)-1));
    if strIcerik <> '' then
    begin
      strIcerik := strIcerik + ',';
      while pos(',', strIcerik) > 0 do
      begin
        inc(iSat);
        if iSat >= Grid.RowCount then Grid.RowCount := iSat + 1;
        Grid.Cells[iSutunNo, iSat] := Copy(strIcerik, 1, Pos(',', strIcerik)-1);
        system.Delete(strIcerik, 1, Pos(',', strIcerik));
      end;
    end;
  end;
Var
  i : Integer;
begin
  for i := 0 to Grid.ColCount - 1 do
    Grid.Cols[i].Clear;
  Grid.ColCount := 3;
  Grid.RowCount := 2;
  SutunDoldur( strXML, '<BEKLEYEN>', Grid, 0 );
  SutunDoldur( strXML, '<ILETILEN>', Grid, 1 );
  SutunDoldur( strXML, '<HATALI>',   Grid, 2 );
end;
Kullanımı :

Kod: Tümünü seç

procedure TForm1.BitBtn1Click(Sender: TObject);
begin
  XMLParseToStrinGrid( Memo1.Lines.Text, StringGrid1 );
end;
Resim
Resim
Resim ....Resim
cvheneburi
Üye
Mesajlar: 95
Kayıt: 07 Eki 2010 03:55

Re: XML Post Gelen Mesaj

Mesaj gönderen cvheneburi »

hocam cevabınız ve ilginiz için çok teşekkür ediyorum emeğinize sağlık allah razı olsun....
Kullanıcı avatarı
adelphiforumz
Üye
Mesajlar: 602
Kayıt: 01 Nis 2008 05:38
Konum: İstanbul

Re: XML Post Gelen Mesaj

Mesaj gönderen adelphiforumz »

S.A.

şimdiye kadar çok fazla xml ile uğraşmadım belki soracağım soru biraz basit olabilir
konusu açılmışken öğrenmek istedim.
Elimde iç içe oluşturulmuş bir xml yapısı var ise bu xml tagları arasında nasıl geçiş yapabilirim.
bir tag ın içinde başka bir tag var ise ve onunda içinde bir tag var ise verileri toplayabileceğim bir yapıyı nasıl oluşturabilirim.

teşekkürler
Ehil olmayanlara sabretmek ehil olanları parlatır.
Akıllı birisinden gelen cefa, bilgisizlerin vefasından iyidir.
Bilgiye ulaştı mı ayak, kanat olur
Biz insanı kıyafetiyle ağırlar bilgisiyle uğurlarız.
Mevlana
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4740
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Re: XML Post Gelen Mesaj

Mesaj gönderen mrmarman »

Şöyle düşünün, alt alta klasör olan bir diskteki dosyaları nasıl listeleriz? 1 adet function yazıp, eğer daha alt seviyesi varsa yazdığınız fonksiyonun kendisini çağırarak.

Her çağrılan fonksiyon, bir önceki çağrılanı pause ederek beklemeye alır, kendisi bitince daha önceki olan kaldığı yerden devam eder. Mantık bu.
Buna recursive metod adı verilir.
Resim
Resim ....Resim
Kullanıcı avatarı
adelphiforumz
Üye
Mesajlar: 602
Kayıt: 01 Nis 2008 05:38
Konum: İstanbul

Re: XML Post Gelen Mesaj

Mesaj gönderen adelphiforumz »

Teşekkürler
Muharrem Hocam
Delphide Xml için önerebileceğiniz bir kitap yada doküman varmıdır bu konuları anlatan
nasıl iç içe taglara ulaşılabilir yada bir tag'ın alt tagları varmıdır
mesela tree listteki node yapısı gibi bunları anlatan komutlar lazım budurumda bana
Ehil olmayanlara sabretmek ehil olanları parlatır.
Akıllı birisinden gelen cefa, bilgisizlerin vefasından iyidir.
Bilgiye ulaştı mı ayak, kanat olur
Biz insanı kıyafetiyle ağırlar bilgisiyle uğurlarız.
Mevlana
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4740
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Re: XML Post Gelen Mesaj

Mesaj gönderen mrmarman »

XMLDocument olarak aratın, örnek çok
Resim
Resim ....Resim
Kullanıcı avatarı
adelphiforumz
Üye
Mesajlar: 602
Kayıt: 01 Nis 2008 05:38
Konum: İstanbul

Re: XML Post Gelen Mesaj

Mesaj gönderen adelphiforumz »

teşekkürler
Ehil olmayanlara sabretmek ehil olanları parlatır.
Akıllı birisinden gelen cefa, bilgisizlerin vefasından iyidir.
Bilgiye ulaştı mı ayak, kanat olur
Biz insanı kıyafetiyle ağırlar bilgisiyle uğurlarız.
Mevlana
Kullanıcı avatarı
vkamadan
Kıdemli Üye
Mesajlar: 1935
Kayıt: 17 Mar 2004 03:52
Konum: Adapazarı
İletişim:

Re: XML Post Gelen Mesaj

Mesaj gönderen vkamadan »

Merhaba ,
ilave olarak delphi içinde yer alan "XML Data Binding" de çok kullanışlı bir araçtır , vereceğiniz XML e uygun yapıda bir Interface oluşturur daha açık bir deyimle ilgili XML i delphide kullanabileceğiniz bir nesne haline getirir pratik bir şekilde yapıya erişebilirsiniz.
Volkan KAMADAN
www.polisoft.com.tr
Cevapla