Subject: Eşleme Tablosunu Kullanarak Kayıt Etmek
Şuan anladıklarım:
1. Anahtarlı bir biçimde verileri kaydedeceğiz. Örnek veri dosyası:
*-*deneme*-*
canalpayt
*-*den*-*
canalpayt
2. 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;
}
3. 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 ?
1. Anahtarlı bir biçimde verileri kaydedeceğiz. Örnek veri dosyası:
*-*deneme*-*
canalpayt
*-*den*-*
canalpayt
2. 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;
}
3. 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 ?
canalpay
Show profile
Link to this post
