Şuan anladıklarım:
-
Anahtarlı bir biçimde verileri kaydedeceğiz. Örnek veri dosyası:
-deneme-
canalpayt
-den-
canalpayt -
Bunu eşleme tablosuna aktarmak için şöyle bir kod kullanacağız(Bu eşleme tablosu olmadan ki kod.)):
int veri_oku_eş(out dchar[][] okunanVeri_, dchar[] veriAdı_, dchar[]
veriYolu_, dchar[] anahtar_)
{dchar[][] okunanVeri__; int bulundu = 0; string veriAdı_s = to!string(veriAdı_); veriAdı = veriAdı_s;///Classa eklenecek string veriYolu_s = to!string(veriYolu_); veriYolu = veriYolu_s;///Classa eklenecek string anahtar_s=to!string(anahtar_); anahtar = anahtar_s;///Classa eklenecek string dosyaAdı = veriYolu_s~"/"~veriAdı_s~".dkveş"; string düzgünAnahtar = "*-*"~anahtar_s~"*-*"~"\n"; File dosya = File(dosyaAdı,"r+"); while (!dosya.eof()) { string satır = dosya.readln(); if(satır==düzgünAnahtar || bulundu==1){ if((satır[0..3]=="*-*")&&(satır!=düzgünAnahtar)){ bulundu=0; break; } dstring satır_sd = to!dstring(satır); okunanVeri__~=satır_sd.dup; } } okunanVeri_=okunanVeri__; return 0;
}
- Bu kod şu şekilde olacak --anahtar -- sözcüğü okunduğunda eşlemetablosu[anahtar] olacak. Veriler okunduğunda da eşlemetablosu[anahtar]=veri olacak.
Bu eşleme tablosu neye yarayacak ? Bir veri dosyasını eşleme tablosuna aktaracağım ve 1'den fazla anahtarı erişirken daha hızlı erişeceğim.
Bu arada aklıma bir fikir geldi. mixin() sayesinde içinde yazanları derletebiliyorduk değil mi ?
Ben anahtarlı verileri şu şekilde kaydedeceğim(Yani veri dosyası şu olacak):
veri[anahtar]=bilgi;
Bunu dosyadan satır satır okuyup mixin ile derlemeye girmesini isteyeceğim. Bütün dosya otomatik eşlenecek ve ben sadece return veri[anahtar]
diyeceğim o veri döndürülecek. Değil mi ?
--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]