Forum: Projeler derle RSS
Proje Yöneticisi
Page:  previous  1  2 
canalpay (Moderator) #16
User title: Can Alpay Çiftçi
Member since Jul 2009 · 801 posts · Location: İzmir
Group memberships: Genel Moderatörler, Üyeler
Show profile · Link to this post
In reply to post ID 2231
Proje sayfana gidiyorsunuz. Admine tıklıyorsunuz. Admine tıkladıktan sonra da Collaborators yazan yere tıklıyorsunuz. Orada Collaborators'a  tıkladığınız yerin sağında add diye bir tuş var. O tuşun soluna eklenecek kişinin adını yazıyorsunuz ve add butonuna basıyorsunuz.


Eğer olmazsa şimdi farkettim projeyi kendimize kopyalayabiliyoruz. Kendime kopyalar sonra herkesi eklerim. Bir veri kaybımızda olmaz.
canalpay (Moderator) #17
User title: Can Alpay Çiftçi
Member since Jul 2009 · 801 posts · Location: İzmir
Group memberships: Genel Moderatörler, Üyeler
Show profile · Link to this post
Sizin yazdığınız derle.d'de sanırım bazı küçücük hatalar var.

Örneğin derle.d'yi derledik ve tek parametre olan ./derle şeklinde çalıştırdık. Hata verir.(Çünkü args 1 elemanlı olur. Ama siz switch'de 2. elemana erişmeye çalışırsınız.) Ve switch'in defaultu çalışmaz. Ancak o switch'i şu hale getirirsek her şey yolunda olur :
 
  if(args.length>1){
 switch (args[1]) {
   case "-a":
     Derle(args);
     break;
   case "-Y":
     ProjeOluştur(args[2]);
     break;
   case "-Yd":
     DosyaOluştur(args[2],args[3]);
     break;
}
}else {
        dout.writefln("-a = Argümanlar. Kullanımı:derle -a -w -L... -p proje");
    dout.writefln("-Y = Yeni proje oluşturur. Kullanımı:derle -Y proje");
    dout.writefln("-Yd = Yeni Dosya oluşturur. Kullanımı: derle -Yd proje.d");
    }
}

Başka hatalarda var sanırım. Şuan kodları tam okumadım. Baştan sona okuyacağım ve yapmak istediğiniz şeye yardımcı olacağım.
Avatar
Racih (Moderator) #18
Member since Aug 2009 · 82 posts · Location: Antalya
Group memberships: Genel Moderatörler, Üyeler
Show profile · Link to this post
Teşekkürler :). Daha düzeltmelere girmedim. Program çalışsında gerisine sonra bakarım. Yavaş yavaş projenin sonuna gelmeye başladım.
canalpay (Moderator) #19
User title: Can Alpay Çiftçi
Member since Jul 2009 · 801 posts · Location: İzmir
Group memberships: Genel Moderatörler, Üyeler
Show profile · Link to this post
Bence kodları yazarken genel olarak herşeyi düşünmelisiniz. Örneğin sizin yazdığınız bu kodlar en basitinden bence platform bağımsızı değil. Çünkü siz linux kullandığınız için ayraç olarak "/" karakterini kullanıyorsunuz. Ama Windowsta bu böyle değil. Platformdan bağımsız bir kod yazmak için bence en önemli modül "std.path" .
Orada ayracı / olarak yazacağınıza sep derseniz Windowsta \ karakterini linuxta / karakterini döndürür.

Bende dkv'yi yazarken Linux'a göre yazmıştım. Elimde windows kalınca mecburen platform bağımsızı yapmıştım. Oradan biliyorum :-)
Avatar
Racih (Moderator) #20
Member since Aug 2009 · 82 posts · Location: Antalya
Group memberships: Genel Moderatörler, Üyeler
Show profile · Link to this post
Ben ilk programın çalışmasına bakarım. Platform sorununuda en sona atayım :). DProjeleri adında bir çalışma dizininde projeleri yönetecek program. Dağınık oldumu çalışma sorunu çıkıyor.
canalpay (Moderator) #21
User title: Can Alpay Çiftçi
Member since Jul 2009 · 801 posts · Location: İzmir
Group memberships: Genel Moderatörler, Üyeler
Show profile · Link to this post
Ben ilk programın çalışmasına bakarım. Platform sorununuda en sona atayım :).
Tamam program doğru çalıştıktan sonra kodlarını paylaştığınızda platform bağımsızı yapma sözüde benden olsun :-)
acehreli (Moderator) #22
User title: Ali Çehreli
Member since Jun 2009 · 1194 posts
Group memberships: Genel Moderatörler, Üyeler
Show profile · Link to this post
Bu bana uzaktan ilgili bir konuyu hatırlattı: main'in parametrelerinde dilimler kullanışlı olabiliyor. Örneğin komut satırındaki bütün sayıları toplayan bir program yazsak:

topla 1 2 3 4 5

main'in ilk parametresi programın ismi olan 'topla' olduğu için, ondan kurtulmak çok kolay:

import std.conv;
import std.stdio;
 
int hepsiniTopla(string[] sayılar)
{
    int toplam;
 
    foreach (sayı; sayılar) {
        toplam += to!int(sayı);
    }
 
    return toplam;
}
 
void main(string[] parametreler)
{
    if (parametreler.length > 1) {
        writeln("Sonuç: ", hepsiniTopla(parametreler[1..$]));
    }
}

O programı yazdıktan sonra hepsiniTopla'ya gerek olmadığını da farkettim. std.algorithm'deki map, belirtilen işlevi, kendisine verilen aralığa uygular ve sonucu yine bir aralık olarak döndürür. reduce ise kendisine verilen bir aralığı bir işlemden geçirir ve tek bir değer döndürür.

O ikisini kullanınca yukarıdaki program daha kısa hale geliyor:

import std.stdio;
import std.algorithm;
 
void main(string[] parametreler)
{
    if (parametreler.length > 1) {
        writeln("Sonuç: ",
                reduce!("a + b")(map!("to!int(a)")(parametreler[1..$])));
    }
}

Evet, biraz okunaksız oluyor ama olsun... :)

Ali
Avatar
Racih (Moderator) #23
Member since Aug 2009 · 82 posts · Location: Antalya
Group memberships: Genel Moderatörler, Üyeler
Show profile · Link to this post
Tamamdır temel işlevleri ekledim.

Ev dizininde DProjeleri diye dizin oluşturuyor. Projeleri oradan çalıştırıyor.
Yeni proje oluşturmak için;
./derle -Y yeniProje

Proje derlemek için;

./derle -p yeniProje

index.txt e argümanlar ekleyerek istediğiniz gibi derleyebilirsiniz.

Basit hatalar çıkabilir. Bildirirseniz sevinirim :)

Derle projesi hayırlı uğurlu olsun hepimize :D
canalpay (Moderator) #24
User title: Can Alpay Çiftçi
Member since Jul 2009 · 801 posts · Location: İzmir
Group memberships: Genel Moderatörler, Üyeler
Show profile · Link to this post
Projeyi en sonunda birazcık anladım. Ancak bazı yapamadığım şeyler var :

Örneğin çilek diye bir proje oluşturdum. O projeye nasıl yeni dosyalar ekleyebilirim diyecektim ve kodlara baktım ne yazık ki Derle ile oluşturduğumuz projeye yeni dosya ekleyemiyoruz. Ayrıca ne yazık ki dosya adı yada proje adı boşluk içeremiyor.

Bunlar benim gözümde düzeltilmesi gereken hatalar.
Avatar
Racih (Moderator) #25
Member since Aug 2009 · 82 posts · Location: Antalya
Group memberships: Genel Moderatörler, Üyeler
Show profile · Link to this post
Teşekkürler. Bunları yapılacaklar listesine ekledim. Yanlız boşluk konusunda sıkıntı var. Linuxta dosya adı ve dizin adında boşluk bırakılması sıkıntı yaratıyor. Parametre verildiğini algılıyor. O sorunu bunda çözemem.
acehreli (Moderator) #26
User title: Ali Çehreli
Member since Jun 2009 · 1194 posts
Group memberships: Genel Moderatörler, Üyeler
Show profile · Link to this post
Linux'ta dosya isimlerinde boşluk için bütün isim tırnaklar içine alınabilir:

mkdir 'abc def'

veya boşluktan önce ters bölü yazılabilir:

mkdir abc\ def

Ama bende hiç isminde boşluk olan dosya yok. :)

Ali
Mengu (Moderator) #27
User title: NONSERVIAM
Member since Jul 2009 · 172 posts · Location: Dersaadet
Group memberships: Genel Moderatörler, Üyeler
Show profile · Link to this post
Quote by acehreli:
Ama bende hiç isminde boşluk olan dosya yok. :)

Ali

aksi cilginlik zaten abi. klasor isminde, dosya isminde bosluk mu olurmus? o da neymis canim? :)
http://www.mengu.net - ki$isel bili$im guncesi.
canalpay (Moderator) #28
User title: Can Alpay Çiftçi
Member since Jul 2009 · 801 posts · Location: İzmir
Group memberships: Genel Moderatörler, Üyeler
Show profile · Link to this post
Ramazan bunu en baştan kodlayalım mı ? Her şey tek dosyada olmasın. Daha çok modüllere ayıralım. Hemde dkvG'yide kullanırız bunun içine. DkvG sayesinde dosyalara yazma okuma değiştirme işlemleri ile uğraşmayız. Yada dkvG'sizde yazabiliriz. Ama daha modüler yazarsak programa ek yapmak yeni özellikler eklemek daha kolay olur bence.
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:  previous  1  2 
Forum: Projeler derle 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: 2010-09-09, 06:09:07 (UTC -07:00)