March 28, 2011

Açıkça kod vermediğimiz için sen bizim kusurumuza bakma. :) Ayrıca hepimiz farklı ölçülerde de olsa deneyimsiziz.

XML elemanının nelerden oluştuğuna bakalım:

'...'

Genel olarak:

'<etiket nitelik="degeri" baska-nitelik="onun degeri" ...>...'

  • XML elemanlarında "etiket" diye bir kavram görülüyor; o kavramı ifade etmek için string uygundur (ilgisiz olarak, burada dstring şart değil çünkü bu etiketi olduğu gibi kullanacağız; karakterlerine teker teker erişme işimiz yok. Ama istenirse dstring de olabilir tabii.)

  • Ayrıca string="string" düzeninde nitelikler var ve bunlardan çok sayıda bulunabiliyor

  • Son olarak, <etiket ...> biçimindeki açma bölümü ile biçimindeki kapama bölümü arasına belirsiz sayıda başka XML elemanları gelebilir. Eğer kendi türümüzün ismi XmlElement ise, onları da bir XmlElement dizisi olarak ifade edebiliriz

Aşağıdaki sınıfı derlemedim bile; hataları olabilir. Ama kafamda canlanan türü gösteriyor.

toString() işlevi de bu elemanın dizgi halindeki gösterimini üretebilir:

class XmlElement
{
   string tag;
   string[string] attributes;
   XmlElement[] elements;

   override string toString() const
   {
       /*
         1. Açma parantezi; örneğin <form
         2. Nitelikler; örneğin method="POST" action="..."
         3. Açma parantezinin kapatılması: ...>
         4. Form'un içindeki diğer elemanlar; örneğin
             <form ...><B>Koyu metin</B>
                       <P>Benim paragrafım.</P>
                       ...
         5. Kapama parantezi; örneğin ...</form>
        */
   }
}

Kadir Can, sence mantıklı mı? Kafana yatmayan yerlerini konuşalım. :)

Bunu veya benzeri bir tür kullanırsak ona addElement() gibi bir üye işlev veririz ve kendi alt elemanlarını öyle ekleyebiliriz:

   benimEleman.addElement(başkaEleman);

Ali

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

March 29, 2011

Benim aklıma yattı.Bu hale getirmeye çalışacağım.

Teşekkürler.

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

April 11, 2011

Ali bey;
Ben class kullanımında o kadar iyi değilim.Biraz çalışmam gerek.Acaba bekleyebilir miyiz?

Acelesi varsa ben karışmayayım.Acelesi yoksa kodları mis gibi yazarım.

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

April 11, 2011

Alıntı:

>

Ben class kullanımında o kadar iyi değilim.Biraz çalışmam gerek.Acaba bekleyebilir miyiz?

Acelesi varsa ben karışmayayım.Acelesi yoksa kodları mis gibi yazarım.

Zaten herkesin kendi deposu olduğu için sorun değil bence. İstediğin gibi istediğin an yazabilisin yazabilirsin.

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

April 11, 2011

Hepinize teşekkür ederim.Class dersine çalışıp yazmaya başlayacağım.

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

April 11, 2011

Ali Bey;
Gösterdiğiniz özene gerçekten çok teşekkür ederim.

Okuldaki öğretmenlerim bile bu kadar özenli davranmıyor.

Dediğiniz sıraya da uyacağım.

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

April 11, 2011

Hiçbir şeyin acelesi yok tabii. :)

Alıntı (Kadir Can):

>

Biraz çalışmam gerek

Nasıl çalışıyorsun? Eğer D.ershane'nin bölümlerini okuyorsan ve anlamadığın yerler oluyorsa bu benim için çok önemli. Eğer koptuğun bir cümle olduysa, örneğin güzel güzel anlarken birden bir noktada kafan karıştıysa lütfen bana hangi cümlede takıldığını söyle.

Genel olarak programlama ile ilgili bir sorunsa zaten nerede soracağını biliyorsun. :)

Ali

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

April 11, 2011

Sınıflar şu bölüm:

http://ddili.org/ders/d/siniflar.html

Onun başlarında yapılar üzerinde anlattığım başka bölümlere de gönderme yapmışım. Ama onların hepsi şart değil. Bence şu sırayla okumalısın:

Yapılar: http://ddili.org/ders/d/yapilar.html
Üye İşlevler: http://ddili.org/ders/d/uye_islevler.html
Kurucu ve Diğer Özel İşlevler: http://ddili.org/ders/d/ozel_islevler.html

Hatta bence sınıflara da gerek olmayabilir. Yukarıdaki üç bölüm bence şimdilik yeterli.

Ali

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

April 12, 2011

Sanırım şöyle bir yapı istiyoruz.Doğru mudur?

import std.stdio;
struct XmlElement{
   string tag;
   string[string] attributes;
   XmlElement[] elements;

   void showCode(){
       write("<",tag," ");
       for( int i = 0 ; i < attributes.length ; i++ ) {
           write(attributes.keys[i],"=","\"",attributes.values[i],"\"");
       }
   }
}

void main(){

   XmlElement eleman;

   XmlElement diğer;

   eleman.tag="a";

   eleman.attributes=["title":"merhaba"];

   diğer.tag="b";

   eleman.elements=[diğer];

   eleman.showCode();
}

Bu temel kısmı tabi ki.Daha çok şey yapılacak ama gidiş yolum nasıl sizce?

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

April 12, 2011

Temelde çok güzel. Bir kaç gözlem:

  • elements için bir foreach döngüsü daha iyi olur:
   foreach (key, value; elements)

(Derlemedim ama öyleydi.)

  • Diğer konuda da söylediğim gibi, showCode() yerine string döndüren bir toString() daha kullanışlı olacak. Ama sonra düzeltilebilir.

Ali

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]