Thread overview
veri oku zaten bütün verileri okuyormuş
January 21, 2010

Evet ben boşuna birbirimizi anlamıyoruz dememişim :-)

Şuan sizin aklınızda nasıl bir dkv var ? Onları açıklarsanız bende ona göre yapacağım.

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

January 20, 2010

Bu projede başından beri yanlış anladığım şeyi buldum: veri_oku zaten bütün verileri bir seferde okuyor:

   int veri_oku(out dchar[][] okunanVeri_, dchar[] veriAdı_, dchar[] veriYolu_)

Kullanıcı bir dizi veriyor ve bütün verileri elde ediyor. Ben ise, her bir veri okunduğunda o işlevin çağrılacağını kurgulamışım. Belgeleri okumamamın sonucu... :)

Ali

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

January 21, 2010

Alıntı (canalpay):

>

Şuan sizin aklınızda nasıl bir dkv var ? Onları açıklarsanız bende ona göre yapacağım.

Ama ben kendi kafamdaki tasarımı sana zorlamak istemiyorum. (Zaten böyle bir şey de olamaz. dkv senin tasarımın. :) ) Seninki de çalışır.

Ben ilk duyduğumda şöyle bir kullanım kurgulamıştım:

/* --- Burası dkv --- */
class Tablo
{
   string[string] veriler;

   string veri(string veri_anahtarı)
   {
       return "merhaba";
   }
}

class dkv
{
   Tablo[string] tablolar;

   this(string veri_tabani_ismi)
   {
       // ... verileri oku ...
       tablolar["ayarlar_tablosu"] = new Tablo;
       // vs.
   }

   Tablo tablo(string tablo_ismi)
   {
       return tablolar[tablo_ismi];
   }
}

/* --- Burası benim programım --- */
class Canavar
{}

void main()
{
   auto veri_tabanım = new dkv("oyun_programim");
   auto ayarlar_tablosu = veri_tabanım.tablo("ayarlar_tablosu");
   auto pencere_rengi = ayarlar_tablosu.veri("pencere_rengi");
   auto oyun_karakteri = ayarlar_tablosu.veri("oyun_karakteri");

   if (oyun_karakteri == "canavar") {
       auto canavar_yetenekleri = veri_tabanım.tablo("canavar_yetenekleri");
       auto güç = canavar_yetenekleri.veri("güç");
       // vs...

       auto canavar = new Canavar(/* ... ne gerekiyorsa ... */);
   }
}

Yani veri tabanı çeşitli tablolardan oluşuyor, ve her tablonun kendi verileri var.

Bundan ötesini düşünmedim. Bana böylesi çok daha kullanışlı geliyor. Çünkü verilere isimle erişebiliyorum. İşin güzeli, kendim bir eşleme tablosu tutmuyorum. Örneğin Tablo'nun içinde eşleme tablosu var; o, oradan kullanıyor.

Ali

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