Forum: Projeler dkv RSS
veri_oku zaten bütün verileri okuyormuş
acehreli (Moderator) #1
User title: Ali Çehreli
Member since Jun 2009 · 1981 posts
Group memberships: Genel Moderatörler, Üyeler
Show profile · Link to this post
Subject: 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 (Moderator) #2
User title: Can Alpay Çiftçi
Member since Jul 2009 · 1032 posts · Location: İzmir
Group memberships: Genel Moderatörler, Üyeler
Show profile · Link to this post
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 (Moderator) #3
User title: Ali Çehreli
Member since Jun 2009 · 1981 posts
Group memberships: Genel Moderatörler, Üyeler
Show profile · Link to this post
Quote by 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
Close Smaller – Larger + Reply to this post:
Verification code: VeriCode Please note the verification code from the picture into the text field next to it.
Smileys: :-) ;-) :-D :-p :blush: :cool: :rolleyes: :huh: :-/ <_< :-( :'( :#: :scared: 8-( :nuts: :-O
Special characters:
Forum: Projeler dkv RSS
Not logged in. · Lost password · Register
This board is powered by the Unclassified NewsBoard software, 20100516-dev, © 2003-10 by Yves Goergen
Current time: 2012-02-05, 11:06:23 (UTC -08:00)