Merhabalar,
Aslında konu Kelimatik projesi ile ilgili ama genel bir konu olduğu için ve herkesin projesinde faydalı olabileceğinden izninizle burada tartışalım. Herkes fikir belirtirse, belki çok verimli bir yapı ortaya çıkabilir...
Soruma geçmeden önce hemen kod ile cevabını vermek istiyorum:
class WordTypes (T)
{
struct Dal (T)
{
T[] datas;
}
Dal[T] categories;
string[] names;
this(string[] isimler; Dal[T] dallar)
{
this.names = isimler;
this.categories = dallar;
}
}
Bir CSV verisi düşünün; bu aslında basit bir (satır x 3 sütunluk) veritabanı çizelgesi. Bir kaç sene evvel MySQL'in sitesinde (emin değilim, Oracle veya Sun'nın sitesinde olabilir) menüler/variantlar için sonsuz derinlikte genişleyebilen bu yapıyı okumuştum. Makaleyi bulamadığım için aklıma kalanlar ile aşağıdaki örnek verileri, yukarıdaki gibi hafızaya almayı düşünüyorum:
Alıntı:
>parrent/name/id
'0;root;0
0;About;1
0;Products;2
2;semifinished;4
2;manufactured;5
0;Downloads;3
3;documents;6
3;pictures;7
3;files;8'
Normalde File ile dosyayı açıp split() ile noktalıvirgüllere(separator) bölmemiz gerekir. Onları geçip şu şekilde kurulduğunu farz edelim...
void main() {
alias WordTypes.Dal D;
auto Dallar = new WordTypes!ubyte(
[ "root", "About", "Products", "semifinished", "manufactured", "Downloads", "documents", "pictures", "files" ],
[ 0 : D([ 1, 2, 3 ]), 2 : D([ 4, 5 ]), 3 : D([ 6, 7, 8 ]) ]
);
}
Çok mu saçma oldu...:)
--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]