Forum: Projeler dkv RSS
veri_oku zaten bütün verileri okuyormuş
acehreli (Moderatör) #1
Kullanıcı başlığı: Ali Çehreli
Üye Haz 2009 tarihinden beri · 4412 mesaj
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
Konu adı: veri_oku zaten bütün verileri okuyormuş
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
canalpay (Moderatör) #2
Kullanıcı başlığı: Can Alpay Çiftçi
Üye Tem 2009 tarihinden beri · 1133 mesaj · Konum: İzmir
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
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.
acehreli (Moderatör) #3
Kullanıcı başlığı: Ali Çehreli
Üye Haz 2009 tarihinden beri · 4412 mesaj
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
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
Doğrulama Kodu: VeriCode Lütfen resimde gördüğünüz doğrulama kodunu girin:
İfadeler: :-) ;-) :-D :-p :blush: :cool: :rolleyes: :huh: :-/ <_< :-( :'( :#: :scared: 8-( :nuts: :-O
Özel Karakterler:
Forum: Projeler dkv RSS
Bağlı değilsiniz. · Şifremi unuttum · ÜYELİK
This board is powered by the Unclassified NewsBoard software, 20100516-dev, © 2003-10 by Yves Goergen
Şu an: 2017-06-24, 22:28:49 (UTC -07:00)