Forum: Projeler d-Ofis RSS
Veri.d
Page:  1  2  3  next 
Kadir Can #1
Member since Jun 2010 · 294 posts
Group memberships: Üyeler
Show profile · Link to this post
Subject: Veri.d
Veri.d tamamlanmak üzere.Sadece veriAra işlevini yazacağım.Bundan sonraki aşamada veritabanı.d'yi yazacağım.Veri.d, veritabanı.d için yazdığım modüldür.veri modülüne Google Code sayfasından ulaşabilirsiniz.
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
Birazdan bakacağım ancak şimdiden çok sevindim söyleyeyim.

Hem svn'yide halletmişsin.

Not bu arada kodların çok temiz ve okunabilir görünüyor. Tebrikler!
Kadir Can #3
Member since Jun 2010 · 294 posts
Group memberships: Üyeler
Show profile · Link to this post
Teşekkür ederim.

SVN olayında saçmalamışım.https: uzantısından giriş yapacağıma http: uzantısından bağlanmışım.Doğal olarak dosya gönderemedim.

İnterneti karışıtırınca gördüm.Bir sitede çok temiz anlatılmış TortoiseSVN.O site sayesinde SVN'yi çözdüm.
canalpay (Moderator) #4
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
Şuan kodları daha denemedim ancak öylesine bir inceledim.

Kendi fikirlerimi söyleyeyim:

değişkenlerin string istemesi bence bir zorunluluk olmaması gerekiyor. Onun yerine değişken türlerini const char[] yaparsak hem char[] hemde string ile kullanabiliriz. Hatta bunu bir adım ilerletip şablon olarak yazabiliriz. Kendi türlerimizide böylece kullanabiliriz. Belki biraz daha külfetli olur ancak çok yetenekli olur.

(Not : TortoiseSVN programını anlatan siteyi belki ait olduğu konu başlığına yazarsan ileride arayanlar daha rahat bulur. )
Kadir Can #5
Member since Jun 2010 · 294 posts
Group memberships: Üyeler
Show profile · Link to this post
String'i ben kendim yazmıştım.const char[] şekline yarın sabah dönüştürürüm.
canalpay (Moderator) #6
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
Tek değişen string yerine onu yazmak gerekecek. Hiç bir fark olmadan hem string hemde char[] ile kullanılabilecek. Ne kadar çok farklı tür ile kullanılabilirse o kadar iyi.

Ayrıca bir önerim daha var. Şuan programı derledim ve şöyle bir dosya yazıyor:

Kişiler
İsim  Soyisim 

Kadir Can Çelik
Can Alpay Çiftçi
Ali Çehreli


Burada eğer başka bir veri olsa ilk etiket ile ilgili mi veri yoksa ikinci etiketlimi anlayamayız. Hatta bu yüzden ileride okuma işlevini yazarken hatalı çalışacaktır. Bunun yerine ben söyle bir tasarım öneriyorum :


Kişiler
No|İsim|Soyisim 

0|Kadir Can|Çelik
1|Can Alpay|Çiftçi
2|Ali|Çehreli


No her zaman otomatik eklenmeli. 0'dan başlayarak her eleman eklendiğinde bir artmalı.

ileride böyle kaydedilmiş bir veriyi şu şekilde okursak
d-veri.oku("İsim");
Şu sonuçları döndürmeli:

Kadir Can
Can Alpay
Ali

Eğer şu şekilde okursak :
d-veri.oku("Soyisim",2);
Şu sonucu döndürmeli:

Çehreli

Eğer şu şekilde okursak
d-veri.oku("",2);  //d-veri.oku("Genel",2); şeklinde de olabilir.
Şu sonucu döndürmeli:

Ali
Çehreli
Kadir Can #7
Member since Jun 2010 · 294 posts
Group memberships: Üyeler
Show profile · Link to this post
canalpay,gerçekten çok iyi bir çözüm bulmuşsun.Ben de bu konuyu düşünüyordum.Modül ya tek veride boşluk kullanımına izin vermeyecekti,ya da ayırıcı karakter kullanacaktı.Ayırıcı karakter güzel bir çözüm.

Numara konusu da güzel bir konu.O satırı ID(Kayıt numarası olsa daha mı iyi?) olarak ekleyeceğim.
Kadir Can #8
Member since Jun 2010 · 294 posts
Group memberships: Üyeler
Show profile · Link to this post
In reply to post #6
Akşam 9-10 gibi söylediğin düzenlemeleri yapacağım.
canalpay (Moderator) #9
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
In reply to post #7
canalpay,gerçekten çok iyi bir çözüm bulmuşsun.

Eee tecrübe konuşuyor :-p Doğrusu D1 ile yapılmış olan filebase'den kopya çektim. Dkv zamanında ondan biraz farklı olmak istemiştim daha farklı yaptım ancak onun hep daha doğru olduğunu düşündüm. (Hatırlatma :Yeri geliyor dkv doğru oluyor yeri geliyor filebase. dkv daha iyi çünkü filebase yerine kullanılabilir. Ancak aynı şey filebase için geçerli değil :-p )
O satırı ID(Kayıt numarası olsa daha mı iyi?) olarak ekleyeceğim.

Benden bir öneri daha(yine filebase'den alıntı) id yerine kaç tane eleman olduğunu ekle. Yani tasarım şu biçimde olsun :
20      |id|name|age

1     |10|Mueller|32

2     |20|Schmitz|17

3       |30|Meier|41

4      |40|Reiser|32

5      |50|Kaiser|32

6     |60|Stiebel|32

7      |70|Kerbel|32

8       |80|Pussi|32

9      |90|Trolls|32

10      |100|Kall|32

11    |110|Scholl|32

12     |120|Mogel|32

13     |130|Pogel|32

14    |140|Trogel|32

15     |150|Vogel|32

16     |160|Logel|32

17      |170|Olga|32

18     |180|Polka|32

19     |190|Minos|32

20    |200|Taurus|32


Burada id filebaseden değil örnek programdan geliyor. Bence id ismi kötü olur çünkü başkası o zaman id adını kullanamaz. Ayrıca ilk satıra kaç tane elaman var diye sorgulatırsak çok daha hızlı bir biçimde sonucu alabiliriz.


Birde aklında bulunsun ayırıcı karakter sabit olmalı. ben dkv'de *-* karakterini ayırıcı karakter olarak kullanmıştım. Ancak | karakteri bu iş için daha uyumlu ve dosyayı açtığımızda göze daha hoş geliyor.
acehreli (Moderator) #10
User title: Ali Çehreli
Member since Jun 2009 · 1981 posts
Group memberships: Genel Moderatörler, Üyeler
Show profile · Link to this post
d-ofis'i daha yeni indirebildim. Benim de hoşuma gitti! :)

Her zaman olduğu gibi, gereksiz olsa da bir kaç not:

- Ben 4 boşluklu girintilere fazla alışmışım; 2 boşluk çok sıkışık geliyor :)

- module isminin dosya ismi ile aynı olması şart değil (galiba :)); ama ben olsam yine de baş harfini dosyanın ismiyle aynı olsun diye küçük v yapardım

- std.stdio.File'ı kullanıyoruz ve cstream gidici olduğuna göre doğrusu da o... Ama, std.stdio.File bir yapı olduğu için onu new ile oluşturmaya gerek yok. Hatta aslında close'u da çağırmaya gerek yok; çünkü 'dosya' nesnesi tabloOluştur'dan çıkarken hemen sonlanacak:

 void tabloOluştur()
 {
  auto dosya=File("deneme.txt","a");
  dosya.writeln(tab_adı);
 }

(Dediğim gibi, sohbet olsun diye gerekli gereksiz yorum yapıyorum; çünkü new'lü ve close'lu kodda da bir sakınca yok aslında. :))

- Ben her zaman için sol tarafa yazılan ++ işlecini öneririm:

    ++kolon_sayı;

kolon_sayı gibi bir int'te hiçbir şey farketmez ama daha kapsamlı türlerde, sağ tarafa yazılan ++ işleci daha pahalıdır. Yeni işleç yükleme düzeneğinde sağa yazılan ++ yüklenemiyor bile; çünkü şu kod olarak işletiliyor: (auto t = e, ++e, t). O da, geçici bir 't' nesnesi kullandığı için genelde daha yavaştır.

(Aynısı -- işleci için de geçerli.)

- foreach'e bir kere alışırsan bir daha for yazmak istemeyeceksin ;) Örnek:

  foreach (i; 0 .. 90) {
      dosya.write(ÇizgiŞekli);
  }

Bazı durumlarda da std.string modülündeki 'repeat' işlevi işe yarayabilir:

  dosya.write(repeat(ÇizgiŞekli.idup, 90));

Ali
Kadir Can #11
Member since Jun 2010 · 294 posts
Group memberships: Üyeler
Show profile · Link to this post
Önerileriniz çok güzel.Bunları deneyeceğim.

Dün bilgisayarım durma hatası verdi ve mavi ekran çıktı.Neyse ki sistem geri yükleme ile kurtardım.Yeni yüklediğim yazılımları da sildim.Şimdi yeniden kuracağım.O yüzden proje biraz sekteye uğrayacak.

Ali Bey,beğendiğinize sevindim.
canalpay (Moderator) #12
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
Ali Beyin dediklerini kodun anlamlarını değiştirmediği için sizinde bilgisayarınızın gerektiği gibi çalışmamasından dolayı kendim yaptım ve yolladım.
Kadir Can #13
Member since Jun 2010 · 294 posts
Group memberships: Üyeler
Show profile · Link to this post
canalpay,teşekkür ederim.
Kadir Can #14
Member since Jun 2010 · 294 posts
Group memberships: Üyeler
Show profile · Link to this post
Bilgisayarım düzeldi.Yarın kodlamaya devam edeceğim.
Kadir Can #15
Member since Jun 2010 · 294 posts
Group memberships: Üyeler
Show profile · Link to this post
In reply to post #6
Quote by canalpay on 2010-07-19, 13:27:
Kişiler
No|İsim|Soyisim 

0|Kadir Can|Çelik
1|Can Alpay|Çiftçi
2|Ali|Çehreli

Ali
Çehreli

İstenen görünümü kazandırdım.Arama işlevine geldi sanırım sıra.
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:
Page:  1  2  3  next 
Forum: Projeler d-Ofis 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:36:49 (UTC -08:00)