Jump to page: 1 2
Thread overview
Dosya adı ile ilgili bir sıkıntı
Jun 20, 2011
noobie
Jun 20, 2011
erdem
Jun 20, 2011
noobie
Jun 20, 2011
erdem
Jun 20, 2011
noobie
Jun 21, 2011
erdem
Jun 21, 2011
erdem
Jun 21, 2011
noobie
Jun 21, 2011
noobie
Jun 21, 2011
erdem
June 20, 2011
import std.string;
import std.conv;
import std.stdio;

void main()
{

char[] ogrenci_adi;
writeln("Ogrencinin ismini giriniz");
readln(ogrenci_adi);
chomp(ogrenci_adi);
string dosya_adı = cast(string)ogrenci_adi ~ ".txt";
File dosya = File(dosya_adı, "a+");
int numara;
writeln("Ogrenci numarasi giriniz");
stdin.readln(numara);
writeln("Tesekkurler");
dosya.writeln("Ad:", ogrenci_adi);
dosya.writeln("Numara:", numara);
writeln("Bitti");
}

Sıkıntı dosya adı değişkeninin-string türünde- kullanılamaması.Çalıştırmaya çalıştığımda ad yazdığımda a+ metoduyla -ali yazdığımızı varsayalım- ali.txt soyası oluşturulamıyor.Yanlış argüman şeklinde bir hata alıyorum (Elbette İngilizcesini :) )
Nereyi yanlış yazıyorum?

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

June 20, 2011

Hoşgeldin noobie! :)

(Not: Buraya yazdığın kod örneklerini renkli görünmeleri için 'code' belirteçleri arasına alabilirsin. Ben seninkini değiştirdim; ona bakabilirsin.)

  1. chomp, kendisine verilen parametreyi değiştirmez. (Ben de tekrar öğrenmek zorunda kaldım. :)) O yüzden dosya isminin sonunda bir de '\n' karakteri kalıyor. Bunu ogrenci_adi'nı okuduktan sonra çıkışa yazdırarak gördüm:
   writeln("-", ogrenci_adi, "-");

chomp'un döndürdüğünü tekrar değişkene atamak gerekiyor:

   ogrenci_adi = chomp(ogrenci_adi);

Ama ben şu yöntemi çok daha kolay ve risksiz buluyorum:

   string ogrenci_adi = chomp(readln());

Şurada biraz bilgi var: http://ddili.org/ders/d/dizgiler.html

Üstelik o zaman okunan veriyi string olarak da tanımlayabiliyoruz.

  1. Kullanıcıya veri girilmesiyle ilgili mesaj gösterildiğinde write daha güzel oluyor. O zaman kullanıcı aynı satırda girebiliyor:
   write("Ogrencinin ismini giriniz: ");
  1. Bende öğrencinin yaşı istendiği yerde program takılıyor. Sanıyorum o durumda readln()'ın farklı bir yüklemesi devreye giriyor:
   int numara;
   writeln("Ogrenci numarasi giriniz");
   stdin.readln(numara);

readln'e int verildiğinde sanıyorum dchar alan yüklemesi kullanılıyor. int okumak için readf uygun:

   int numara;
   writeln("Ogrenci numarasi giriniz");
   stdin.readf(" %s", &numara);

%s'den önceki boşluğun neden gerektiğini de şurada yazmışım: http://ddili.org/ders/d/standart_giris.html

Şimdi doğru çalışıyor! :)

Ben Türkçe harfler de kullanarak şu hale dönüştürdüm:

import std.string;
import std.stdio;

void main()
{
   write("Öğrencinin ismini giriniz: ");
   string öğrenci_adı = chomp(readln());

   string dosya_adı = öğrenci_adı ~ ".txt";
   File dosya = File(dosya_adı, "a+");

   int numara;
   write("Öğrencinin numarasını giriniz: ");
   readf(" %s", &numara);

   writeln("Teşekkürler");

   dosya.writeln("Ad:", öğrenci_adı);
   dosya.writeln("Numara:", numara);

   writeln("Bitti");
}

Ali

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

June 21, 2011

Teşekkürler!

Türkçe karakter kullanmamamın sebebi code blocks da çalıştırınca düzgün gözükmüyor.Sizin forumdaki yazınızı okumustum değişken adlarını vs. Türkçe kullanabiliyorum.Tam da bu kodu yazmaya çalışırken okumustum.Onun için değişkenler ogrenci_adi ve dosya_adı şeklinde :)

Başlayalı bir kaç gün oldu.Ve dil şu an için çok güzel geliyor(İleride ne olur bilemiyorum).Tek sıkıntı Türkçe kaynağın yetersiz olması.Ali Bey çok güzel anlatmış D.ershane'de.Ama Wiki de sadece bir kaç modülün açıklaması var.

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

June 21, 2011

Bunları yapmıştım ama hala Türkçe karakterleri düzgün görüntüleyemiyorum(Hiç konsolodan program derlemedim code blocks da F9 yapınca derlenip çalıştırılıyor)

Bunun dışında tuş kombinasyonları ile ilgili bir belge ararken Ali Bey'in bir yazısına denk gelmiştim.(Aynı yazıyı arıyorum aam bulamadım).Nasıl CTRL+S gibi kombinasyonları anlamasını sağlayabilirim programın?(Dosya adından tuş kombinasyonlarına geldik.Çok soru soruyorum galiba)

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

June 21, 2011

Ben de yazmaya çalıştım ama hemen hemen Ali beyin yazdığı ile aynı oldu :-O

import std.string;
import std.stdio;

void main()
{
	writeln("Öğrencinin isminizi giriniz");
	auto öğrenciAdı = chomp(readln());
	string dosyaAdı = öğrenciAdı ~ ".txt";
	File dosya = File(dosyaAdı, "w");
}

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

June 21, 2011

Türkçe kaynağın yetersiz olduğundan eminmisin. Ben hala Ali beyin yazdıklarına yetişemiyorum :-D

Biraz yavaş kalıyorum galiba! :-p

Türkçe wikideki bilgiler güncelliğini kaybetmiş olabilir. O yüzden pek tavsiye etmiyorum.

Windows altındaki konsolun karakterleri doğru olarak görüntüleyebilmesi için de yazdığın kodun bir yerine şunun gibi bir kod eklemen yeterli:


version(Windows)
{
   import std.c.windows.windows : SetConsoleCP, SetConsoleOutputCP;
   static this()
   {
       SetConsoleCP(65001);
       SetConsoleOutputCP(65001);
   }
}

Bunun dışında varsayılan konsol yazı tipi de UTF8 karakter kodlamasını desteklemiyor sanırım. Bunun için komut istemini açıp başlık kısmında (üst taraftaki mavi kısım) sağ tıklayıp Özellikler->Yazı Tipi bölümünden 'Lucida Console' gibi UTF8 destekleyen bir yazı tipi kullanabilirsin.

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

June 21, 2011

Ben bu değişiklikleri yapınca Türkçe karakterler sorunsuz olarak görüntüleniyor. Kullandığınız editörün IDE'nin karakter kodlamasını da UTF8 olarak belirtmek gerekiyor. Ben editör olarak notepad+ kullanıyorum.

http://download.tuxfamily.org/notepadplus/5.9.2/npp.5.9.2.Installer.exe

Kodlamayı değiştirmek için Kodlama->UTF-8 olarak Kodla demek yeterli oluyor.

Programı derlemek için de basitçe 'dmd kaynakkod.d' diyebilirsiniz.

Ben windows'u genelde yazdığım kodun çalışıp çalışmadığını test için kullandığım için benim bildiklerim bu kadar :huh: Code Blocks'u da hiç kullanmadığım için bilmiyorum.

Hemen hemen yazdığım tüm kaynak kodu Ubuntu Natty altında Emacs kullanarak kodluyorum. Ve kodlama ortamı çok rahat :-)

Windows altında kod yazmış olsam herhalde VisualD'yi kullanırdım.

http://www.dsource.org/projects/visuald

Bu arada aslında lisanslı olarak bir Visual Studio sahibiyim ama sanırım o cd'ler annemlerde kaldığı için hiç denemedim. Zaten uzun süredir Windows altında kod yazmadım :rolleyes:

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

June 21, 2011

Code block da bahsttiğin şeyler var kodlar renklendiriliyor hizalama var.Eğer kodları renklendirmiyorsa dosyayı .d uzantıı ile kaydetmemişsindir direk açıp kod yazınca notepad a yazmış gibi oluyorsun CTRL+S deyip D dotası biçiminde kaydedersen bütün sorun çözülecektir.

Tuş kombinasyonları soruma cevap alamadım.Lütfen yardımcı olur musunuz?Ali Bey'in o yazısı google a ne yazınca geldi hatırlayamadım :(

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

June 21, 2011

Codeblocks'u denemek için kurdum. Ancak pek beğenmedim :-/

Kod renklendirme hizalama desteği bile yok. Tüm kaynak kodlarında UTF8 olarak kodlama için

Settings->Editor menüsünden
Encoding: Use encoding when opening files: UTF8

olarak seçmek gerekiyor. Bu arada Settings->Compiler and Debugger bölümünde DigitalMars D Compiler seçmek ve başka ek ayarlar yapmak gerekiyor.

Bu ayarları ayrıntılı olarak yazmıyorum. Çünkü bu geliştirme ortamını kullanışlı bulmadım. Bu ayarları yaptıktan sonra ve yukarda Türkçe karakterleri eklemek için bahsettiğim kodu ekleyip komut istemi yazı tipini Lucida Console olarak seçtiğimizde Türkçe karakterler doğru olarak görüntüleniyor.

http://ddili.org/kurulum/

Benim önerim bu bölümde en kısa zamanda bir düzenlemeye gidelim. Örneğin programlama dili kurulum sihirbazının linki çalışmıyor. Çalışıyor olsa bile çok eski bir DMD sürümünü yükleyecek.

Geriye sadece windows kullananlar için Code Blocks öneriyormuşuz gibi bir durum ortaya çıkıyor. Ama Code Blocks ayarlarını yapmak hem zahmetli, hem de kod renklendirmesi hizalama vs.. gibi özellikleri direkt olarak sunamıyor. Tüm ayarları yaptıktan sonra örnek olarak gelen D application projesi derlenmiyor bile.

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

June 21, 2011

Alıntı (acehreli):

>

Alıntı (noobie):

>

Tuş kombinasyonları soruma cevap alamadım.

Konsol tuşları konusunda şöyle bir çözüm var:

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

Windows'da kbhit() vardı.

Ali

Ben de linkteki yazınızı arıyordum.Teşeekkürler.

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

« First   ‹ Prev
1 2