Thread overview
February 28, 2010

Ben dkv'nin platformdan bağımsız olması için kodları windows içinde özel olarak düzenliyordum.
İşletim sistemleri için ayrı yol ayıraçları olduğu için bende kodları şöyle düzenlemek zorunda kalmıştım:

       version(Posix){
                       string dosyaAdı = vTAdı~"/"~tAdı~"/"~veriAdı~".dkv";
               }else version(Windows){
                       string dosyaAdı = vTAdı~"\\"~tAdı~"\\"~veriAdı~".dkv";
               }

Açıkcası bu kadar uğraşmak bana zor geldi hatta böyle bir kod yazdığım için kendimden utandım(Lafın gelişi :-) ) ve içimden dedimki pythondaki os modülü gibi yol ayıracını otomatik çalıştığı işletim sistemine göre koyan bir modül yazayım. Sonrada bu modülü büyüteyim dedim. Ve daha sonrada dedimki kesin buna benzer bir şey phobosta da vardır. Ve sanırım buna benzer şey olan şey std.path oluyor.

Bunun içinde bende dedimki içimden phobosun path modülünü Türkçeye çevirelim.

Sonrada size duyurayım dedim. Sizce Phobosun std.path modülünün belgesini çevirelim mi ?
http://www.digitalmars.com/d/2.0/phobos/std_path.html

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

February 28, 2010

Ben ara ara eklerim. Başka arkadaşlar da yardım edebilirlerse çok iyi olur.

Ali

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

March 01, 2010

Alıntı:

>

Ben ara ara eklerim. Başka arkadaşlar da yardım edebilirlerse çok iyi olur.

Teşekkürler bende kendimce bir şeyler ekliyorum ama doğru mu çeviriyorum emin değilim. Örneğin semi colon ayrı olduğu için yarım kolon diyecektim.(colonun iki nokta anlamında olduğunu bilmiyordum.) Ama noktalı virgül demekmiş. Ama D2nin dökümanında ayrı yazılmış. Bende ne olacağından emin olamadım.

Bu yüzden doğru çevirdiğimden emin değilim ? Sizce çevirmeye devam etmeli miyim Yoksa çevirerek size köstek mi olurum ?

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

March 01, 2010

Şuan çevirmeye çalışıyorum. Eminim bu çeviri hem normal ingilizceme hem de teknik ingilizceme oldukça yardımcı olacaktır.( Çevrilmiş iki satır ne kadar yardımcı olursa :-) )

Ama hatalarımı en azından söylerseniz hem yanlış çevirmem hem de D ile ilgili yanlış şeyler öğrenmem.

Bu arada std.path modülünde fcmp dikkatimi çekti. Sanırım o da düzeltilmesi gerekecek.

Ayrıca immutable char[1u],immutable char[2u]'daki 2u ve 1u ne demek merak ediyorum.

Ve ayrıca **alias fcmp ** aslında cmp(getName(string bilmemne),getName(string bilememne)) işlev çağrımının takma adı mı ?

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

March 01, 2010

Çevirerek destek ol lütfen. :)

Ali

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

March 01, 2010

Alıntı (canalpay):

>

Ayrıca immutable char[1u],immutable char[2u]'daki 2u ve 1u ne demek merak ediyorum.

Sonlarındaki u, o hazır değerlerin 'unsigned' olduklarını gösteriyor. u yazılmadan da çalışır herhalde ama türün aslında 'unsigned' olduğunu belirtmek için yazıyorlar.

Şurada "U son eki" başlığında geçiyor:

http://ddili.org/ders/d/hazir_degerler.html

Alıntı:

>

Ve ayrıca **alias fcmp ** aslında cmp(getName(string bilmemne),getName(string bilememne)) işlev çağrımının takma adı mı ?

Ortama göre ya cmp, ya icmp... dmd/src/phobos/std/path.d dosyasına bakınca şunları görüyorum:

version (Windows) alias std.string.icmp fcmp;

version (Posix) alias std.string.cmp fcmp;

Dosya ismi karşılaştırmasını Windows'da küçük/büyük harf ayrımına bakmadan gerçekleştiriyor.

Ali

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

March 02, 2010

Alıntı:

>

Dosya ismi karşılaştırmasını Windows'da küçük/büyük harf ayrımına bakmadan gerçekleştiriyor.

Normal. Yoksa işlev doğru yanıtı veremez. Çünkü windowsta bir dizini çağırırken CaN diye de çağırsan cAn diye de aynı dizine gider. Doğrusu bunu siz biliyorsunuzdur ama söyleyeyim dedim. Belki okuyan ve bilmeyen olabilir.

Ayrıca hazır değerler dersi ile ilgili bir şey söyleyeceğim:
Alıntı (d.ershane):

>

Karakter belirteçleri şunlardır:
\n satır sonu

Bu linux'ta böyledir. Eğer windows ortamında bu benim hatırladığım kadarıyla \r\n biçimindeydi. Örneğin dkv'de şöyle bir şey yazdırsam : 'dede\nfdff' windows şuna benzer bir şey okuyor : dede[] fdff (benzer dedim aynısı değil.) Ama gerçekte nasıl olması gerektiğini biliyorsunuz. Bence bu yüzden windowsta ayrı olan şeyleri belirtseniz iyi olur.(?)

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

March 02, 2010

Eğer windowsun not defteri ile açarsam sorun oluşturuyor. Çünkü \n başka bir şey tanımlı. Ama o satırı kopyalayıp buraya yapıştırırsam satır başı yapıyor. Ama \r\n diye denersem not defterinde sorun oluşturmuyor. Buradan anlayacağım şey D \n olarak kaydediyor. Geany filan bunu satır başı olarak algılarken windowsun standart programı bunu bir şeye benzetemiyor. Çünkü microsoftun standartına göre \n diye bir şey yok \r\n diye bir şey var.

Yani ne D /'yü 'ye çeviriyor ne de başka bir şey ? Belki C'de böyle bir şey yapmıyordur ? Onuda denemek lazım :-)

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

March 02, 2010

Alıntı (canalpay):

>

Alıntı (d.ershane):

>

Karakter belirteçleri şunlardır:
\n satır sonu

Bu linux'ta böyledir. Eğer windows ortamında bu benim hatırladığım kadarıyla \r\n biçimindeydi.

Karakterin kendisinin anlamında bir değişiklik yoktur ama: o, her zaman "satır sonu" karakteridir. '\r' de "satırın başına git" karakteridir.

C ve C++'da, kod içindeki '\n', her zaman için "satır sonu" anlamına gelir. "text" modda açılan dosyalar, '\n' karakterini ortama göre dönüştürürler, "binary" modda açılanlar dönüştürmezler. (Zaten "text" ile "binary"nin farkı, "text" modda dönüşüm yapılmasıdır.)

Ben bunun D için de aynı olduğunu varsayıyorum. Hele std.stdio.File yapısı kullanıldığında, dosya modu aynı C'deki gibi belirlendiği için, herhalde doğrudur. Yani Windows için özel bir şey yapmaya gerek yok.

Emin olmadığım tek şey, std.stream.File; çünkü onda dosya modları arasında "text" veya "binary" seçeneği yok. Hangisini varsaydıklarını Linux ortamında deneyemiyorum. :) std.stream.File.parseMode işlevine bakınca da "text" veya "binary" ile ilgili bir şey göremiyorum.

Windows'da CreateFileA veya CreateFileW'yu kullanıyorlar.

Can, 'dede\nfdff' yazdırmayı std.stream.File ile Windows'da bir kere daha dener misin. Bakalım ne oluyor.

Teşekkürler,
Ali

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

March 02, 2010

Denediğin için teşekkürler.

Alıntı (canalpay):

>

Eğer windowsun not defteri ile açarsam sorun oluşturuyor. Çünkü \n başka bir şey tanımlı.

Bu, std.stream.File'ın "binary" modda çalıştığını gösteriyor. Yani '\n' karakterini ortamın istediği şekilde dönüştürmemiş.

Alıntı:

>

Ama \r\n diye denersem not defterinde sorun oluşturmuyor.

Yine "binary" olduğunu gösteriyor. Öyle yazınca gerçekten de Windows'un sevdiği \r\n karakterleri olarak duruyorlar. Yani yine dönüşüm yok...

Alıntı:

>

Buradan anlayacağım şey D \n olarak kaydediyor.

D değil, std.stream.File.

Alıntı:

>

Çünkü microsoftun standartına göre \n diye bir şey yok \r\n diye bir şey var.

'\n' yine de satır sonu karakteri ama Windows ayrıca bir de "satır başına git" karakteri istiyor.

Alıntı:

>

Yani ne D /'yü 'ye çeviriyor ne de başka bir şey ? Belki C'de böyle bir şey yapmıyordur ? Onuda denemek lazım :-)

Bu konunun dille bir ilgisi yok ama. Ben daha önceden '/' karakterinin de dosya ayracı olduğunu söylemiştim ve sen yanıldığımı göstermiştin. Sonradan hatırladım: '/' ayracı, #include edilen başlıklarda kullanılabilir. Hem Linux'ta hem Windows'da...

Deneyecek iki şey kaldı:

  1. std.stdio.File'ı "text" modda denemek. Özel bir şey yapmaya gerek yok, mod dizgisinin sonuna 'b' eklenmezse zaten "text"tir:
import std.stdio;

// ...

auto dosya = File("deneme.txt", "w");
  1. std.stream.File'ı writefln ile denemek... diyecektim ki... baktım, işte o dönüştürüyormuş :) dmd/src/phobos/std/stream.d:
 void writeLineW(const(wchar)[] s) {
   writeStringW(s);
   version (Win32)
     writeStringW("\r\n");
   else version (Mac)
     writeStringW("\r");
   else
     writeStringW("\n");
 }

Teşekkürler! Derse bir uyarı yazacağım... :)

Ali

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]