Forum: D Programlama Dili RSS
Başalngıç ve Türkçe karakter sorunu
Sayfa:  1  2  sonraki 
cos00kun #1
Üye Kas 2014 tarihinden beri · 109 mesaj
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Konu adı: Başalngıç ve Türkçe karakter sorunu
Merhabalar
konuyla ilgili bayağı bi yazı var forumda okudum da ancak yinede D yle ilk merhaba dünya programını yazarken Her ne kadar çok önemli olmasada Türkçe karakter sorununu bende yaşadım.. Merhaba dünya yı derlediğimde consolede Lucida Console fontu seçmeme rağmen  "Error:Outside Unicode code space" hatasını alıyorum..
Console ekranında zaten iki font çıkıyor Biri tarama yazı tipleri diğeride Lucida Console dolayısıyla ikisindede aynı hatayı alıyorum..
Windowsun kendisi zaten Bölge,Dil Klavye olarak Türkçe olmasına rağmen bu hata anlamsız geliyor.. Yahu insanın hem Windows hemde Türkçe kullanma şansı yoksa ne diye sadece ingilizce bir universal dile ek yapılmış :) Hoş ben zaten uyumluluk vesaire sorunlarından dolayı kullanmayacağım ama çözümü Windows için bir toparlayıp anlatmanın herkese faydalı olacağına inanıyorum.. Üstadlar söz sizde..

Sistem: Windows 7
Kullanılan compiler: Dmd 2


iyi günler dilerim...
E=mc^2
nurullahisrgan #2
Üye Ock 2015 tarihinden beri · 76 mesaj · Konum: Mardin, Nusaybin
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Windowsta bir defa D kodu yazdım. Çalışmadı. Yazdığıma 1000 kere pişman oldum. Konsol ayarlarmasına gelirsek, Ali hocanın kitabında nasıl yapılacağı anlatılmış.
cos00kun #3
Üye Kas 2014 tarihinden beri · 109 mesaj
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
yok yok windowsta niye sorun olsun ki sanki linux içinmi üretildi D dili :) Sadece birilerinin üzerine daha çok eğilmesi lazım o kadar... Bu arada kitapta yazan karakter çıktıları için ama benim sorunum consoleden çıkışta oluşuyor daha doğrusu sorun daha çok windowstaki ayarlamayı yapamama dan kaynaklanıyor zira consoledekş hatayı yazdım ..
iyi günler
E=mc^2
Avatar
zekeriyadurmus #4
Kullanıcı başlığı: Talha Zekeriya Durmuş
Üye Eki 2012 tarihinden beri · 701 mesaj · Konum: Samsun/Türkiye
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Windowsta bir defa D kodu yazdım. Çalışmadı. Yazdığıma 1000 kere pişman oldum.

D dilini hep windows ortamında kullanıyorum. Daha önce hiç problem yaşamadım. Tavsiyem dub yükle. Üstüne
"dub generate visuald" çalıştır. Otomatik olarak visuald dosyalarını oluşturur. Rahat rahat kullanırsın.

Zekeriya
Bilgi meraktan gelir...
acehreli (Moderatör) #5
Kullanıcı başlığı: Ali Çehreli
Üye Haz 2009 tarihinden beri · 4527 mesaj
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
cos00kun, font seçimine ek olarak code page'i 65001 olarak ayarlamak gerekiyor:

  http://ddili.org/forum/post/8

Ali
nurullahisrgan #6
Üye Ock 2015 tarihinden beri · 76 mesaj · Konum: Mardin, Nusaybin
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Yanıtlanan mesaj #4
Öneriniz için teşekkürler. Artık Linux üzerinden çalışıyorum. GtkD dururken VisualD'ye girmem.
cos00kun #7
Üye Kas 2014 tarihinden beri · 109 mesaj
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Yanıtlanan mesaj #5
acehreli:
cos00kun, font seçimine ek olarak code page'i 65001 olarak ayarlamak gerekiyor:

  http://ddili.org/forum/post/8

Ali

hay çok yaşa ya o kadar bakmama rağmen nasıl görememişim code page yi aslında gördüydüm ancak komutla konsol ekranından değiştiğini atlamışım.. çok saolun
E=mc^2
cos00kun #8
Üye Kas 2014 tarihinden beri · 109 mesaj
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Ali hocam selamlar..
Consoleden Türkçe karakter kullanmak ve derleme yapmak için Code pageyi de registerdan değiştiridiğimde Windows 10 çöktü :) 2 denememde başarısız oldu .. Win 7 yada win 8 belki problem çıkarmıyordur o işletim sistemleriylede deneyeceğim ancak koskoca bir programlama dili ne olursa olsun eğerki unicodeyi destekliyorsa bu kadar kullanıcı dostu olmaktan uzak olmamalı diye düşünüyorum.. Bi şekilde Derleyici kurulumunda bu işin direk çözümlenmesi lazım.. Doğrudur olay D dilinden ziyade işletim sisteminin unicode ile uyumuyla alakalı ama sonuçta bu Windowsu da çok büyük kısım kullanıyor..
E=mc^2
acehreli (Moderatör) #9
Kullanıcı başlığı: Ali Çehreli
Üye Haz 2009 tarihinden beri · 4527 mesaj
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
Ama dediğin gibi, bu konu derleyicinin dışında. Herhangi bir nedenle özel bir karakter kodlaması isteyen kişilerin işini "bakın unicode daha iyi" diye bozamayız. :)

Program içinden de ayarlanabiliyor aslında. Umarım Windows 10'da da çalışıyordur:

  http://ddili.org/forum/thread/1381

Ali
cos00kun #10
Üye Kas 2014 tarihinden beri · 109 mesaj
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
merhaba dünya programcığına

import std.c.windows.windows;
extern(Windows) BOOL SetConsoleOutputCP(UINT);
SetConsoleOutputCP(65001);
ekleyip denediğimde hata mesajı;

C:\Users\user\Desktop\D Language>dmd deneme.d
deneme.d(5): Error: unexpected ( in declarator
deneme.d(5): Error: basic type expected, not 65001
deneme.d(5): Error: found '65001' when expecting ')'
deneme.d(5): Error: no identifier for declarator SetConsoleOutputCP(int)
deneme.d(5): Error: semicolon expected following function declaration
deneme.d(5): Error: declaration expected, not ')'
deneme.d(9): Error: Outside Unicode code space
 
C:\Users\user\Desktop\D Language>
   oluyor...

aynı şekilde

version (Windows) {
    SetConsoleCP(65001);
    SetConsoleOutputCP(65001);
    // (Fontu ayarlamak da gerekiyor mudur? Bilmiyorum. :) )
}

eklediğimde bu seferde;

C:\Users\user\Desktop\D Language>dmd deneme.d
deneme.d(4): Error: unexpected ( in declarator
deneme.d(4): Error: basic type expected, not 65001
deneme.d(4): Error: found '65001' when expecting ')'
deneme.d(4): Error: no identifier for declarator SetConsoleCP(int)
deneme.d(4): Error: semicolon expected following function declaration
deneme.d(4): Error: declaration expected, not ')'
deneme.d(5): Error: unexpected ( in declarator
deneme.d(5): Error: basic type expected, not 65001
deneme.d(5): Error: found '65001' when expecting ')'
deneme.d(5): Error: no identifier for declarator SetConsoleOutputCP(int)
deneme.d(5): Error: semicolon expected following function declaration
deneme.d(5): Error: declaration expected, not ')'
deneme.d(11): Error: Outside Unicode code space
 
C:\Users\user\Desktop\D Language>dmd deneme.d

bu oluyor :)

Daha ilk programcıklarımda bu ne eziyet bana :) Yokmu bi Windows 10 u olupta D kullanan cengaver .. hayır bozuk Türkçe yazsa yine sorun olmayacak ancak derleme yapamamasına içerliyorum sadece..
E=mc^2
Bu mesaj cos00kun tarafından değiştirildi; zaman: 2015-10-31, 23:17.
acehreli (Moderatör) #11
Kullanıcı başlığı: Ali Çehreli
Üye Haz 2009 tarihinden beri · 4527 mesaj
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
Diğer konuda fazla açık yazmadığımdan olsa gerek sanırım onları modül düzeyinde yazmışsın. Ne yazık ki SetConsoleOutputCP(65001); gibi işlev çağrılarını oraya yazamayız.

Bütün programda tek konsol bulunduğuna göre, en iyisi shared static this() bloğuna yazmaktır. Belki de ben Linux ortamında olduğum için BOOL ve UINT tanınmadı; onun için onları da şöyle tanımladım:
import std.c.windows.windows;
 
alias BOOL = bool;
alias UINT = uint;
extern(Windows) BOOL SetConsoleOutputCP(UINT);
 
shared static this() {
    SetConsoleOutputCP(65001);
}
 
void main() {
}
Ali
nurullahisrgan #12
Üye Ock 2015 tarihinden beri · 76 mesaj · Konum: Mardin, Nusaybin
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Yanıtlanan mesaj #10
Aylar sonra tekrar windowsta D kodu yazdım... :-) Yazı tipini TrueType yaptım ve chcp 65001 yazdım ancak sorun değişmedi. Unicode escaping gibi bir hata verdi.. Sanırım Windows10 ve Windows7 aynı malmış.
nurullahisrgan #13
Üye Ock 2015 tarihinden beri · 76 mesaj · Konum: Mardin, Nusaybin
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Ali hocam yazdığınız kod windows7'de etkili olmadı belki Windows10'da işe yarar.
cos00kun #14
Üye Kas 2014 tarihinden beri · 109 mesaj
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Yanıtlanan mesaj #12
ee ne olacak şimdi peki Türkçe kullanmayacakmıyız anlamadımki ! Dediğim gibi türkçe değişken adı falan kullanmak umrumda değil ancak text yazıyı bile consoleden alamayacaksam ne yapacağım peki ben :) hadi onuda geçtim derleyemiyorum bile .. Sonuçta bu öğrenmeye engel değil Türkçesiz devam edeceğim ancak bu sorun neden C, ve C++ console de derleme hatası vermezken D de veriyor... Neyse pes etmek yok yola devam..

Not : Ali Hocam garip olan şu consoleden codepage  manuel değiştiği kabul görse bile hala derleme hatasının olması bu durumda yinede console-unicode uyumundan kaynaklanmıyomuş mu demeliyiz sizce ?? yoksa başka bi sorunmu var ??

C:\Users\user\Desktop\D Language>chcp
Active code page: 857
 
C:\Users\user\Desktop\D Language>chcp 65001
Active code page: 65001
 
C:\Users\user\Desktop\D Language>dmd deneme.d
deneme.d(4): Error: Outside Unicode code space
 
C:\Users\user\Desktop\D Language>
E=mc^2
Bu mesaj cos00kun tarafından değiştirildi; zaman: 2015-11-01, 00:09.
nurullahisrgan #15
Üye Ock 2015 tarihinden beri · 76 mesaj · Konum: Mardin, Nusaybin
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Bence sorun microsoft'a bildirilmeli.:-)
Doğrulama Kodu: VeriCode Lütfen resimde gördüğünüz doğrulama kodunu girin:
İfadeler: :-) ;-) :-D :-p :blush: :cool: :rolleyes: :huh: :-/ <_< :-( :'( :#: :scared: 8-( :nuts: :-O
Özel Karakterler:
Sayfa:  1  2  sonraki 
Bağlı değilsiniz. · Şifremi unuttum · ÜYELİK
This board is powered by the Unclassified NewsBoard software, 20100516-dev, © 2003-10 by Yves Goergen
Şu an: 2017-11-22, 02:52:24 (UTC -08:00)