Jump to page: 1 2
Thread overview
Sinif kurarken aldigim hata
Jul 21, 2013
agora
Jul 22, 2013
Salih Dinçer
Jul 22, 2013
agora
Jul 22, 2013
agora
Jul 24, 2013
agora
Jul 25, 2013
huseyin
Jul 26, 2013
agora
Jul 26, 2013
agora
July 22, 2013

Selam asagidaki gibi bir hata aliyorum. Dil.Turkce(); sinifi'nin tur olarak kullanilacagini soyluyor

Error: class Dil.Turkce() is used as a type (Veritabani)

Sinifi boyle olusturabiliyorum. Mono-D ile. Mono Develop uzerinde

Turkce trk = new Turkce();
{
   trk.Cevir("şüğüıçö");
}

Bu sinifin kaynagindaki kodlar ise sunlar

module Dil;

import std.stdio;

import std.string: replace;

class Turkce()

{

	public void Cevir(string kelime)

	{

		auto cevirilen = kelime.replace("ç", "c");

		writeln(cevirilen);

	}

}

Dosya açma ve veri girme sınıfı oluşturdum bunun benzeri onda bir sorun yaşamadım.

Matematiksel ifadeleri kapsayan örneğin toplama, çıkarma, bölme sınıflarında

Sınıf işlem = new Sınıf();

yazmak yeterli iken Türkçe sınıfı ve Yazdığım dosya sınıfında köşeli parantez istiyor ve sondaki noktalı virgülü de istiyor.

Kısacası aldığım hata budur :)

Teşekkürler şimdiden :)

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

July 22, 2013
class Turkce() //<--- şablon kullanacaksan parantez içinde bir harf veya anahtarsözcük olmalı
{
//...

Kullanmayacaksan parantezleri kaldırmalısın...

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

July 22, 2013

Hocam Duzenledim simdi dediginizi bu sefer hata almiyorum ama daha değişik birşey oluyor

Kod bu

module Dil;

import std.stdio;
import std.string: replace;

class Turkce
{
	public void Cevir(string kelime)
	{
		string[] icerik = ["ç", "ö", "ş", "ğ", "ü", "ı", "Ç", "Ö", "Ş", "Ğ", "Ü", "İ"];
		string[] duzenle = ["c", "o", "s", "g", "u", "i", "C", "O", "S", "G", "U", "I"];

		foreach(string yazdir; icerik)
		{
			foreach(string duzelt; duzenle)
			{
				auto cevirilen = kelime.replace(yazdir, duzelt);
				writeln(cevirilen);
			}

		}


	}
}


Çıktı ise şu

/*dmd main.d Dil.d SiraBul.d Dosya.d
root@02x110:~/Desktop/Start# ./main
12
8
16
48

Dosya olusturuluyor

şerafeçüğn
şüğüıcö
şüğüıçc
cüğüıçö
şücüıçö
şcğcıçö
şüğücçö
şüğüıçö
şüğüıçö
şüğüıçö
şüğüıçö
şüğüıçö
şüğüıçö*/

main dosyasının içeriğini üstte yollamıştım. Yani çıktıda kalın göründü mü bilmem ama işaretlediğim bazı yerler düzeliyor sadece. Bunu nasıl ayarlarım?

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

July 22, 2013

Evet hocam tamamını almadım çünkü fazlalık oluşturmaması için

Ic ice dongude hata oldugunu anladim aslinda

  1. ic ice donguyu yapmamis olsaydim
auto cevirilen = kelime.replace(yazdir, "ç");

oluyordu ve çıktı olarak da

c veriyordu yani oraya dizide belirtilen hangi değeri yazarsam onu düzenliyordu. ama bu gibi manuel tanımlamalar yetersiz kalacaktı :)

Şimdi ben MySQL kutuphanesinden etkilenmiştim. Verilerimi depolayacagim, kendi yapımı deneyeyim dedim. Linux altında sorun olmadı ama Windows denemelerimde Türkçe karakter sorunu yaşadım. İşi garanti'ye almak adına böyle birşey denedim.

dlang vermis aslinda ama nereye bakacagimi bilememisim ugrasip durmusum replace ile. Boylesi daha da kolay geldi. Ama replace ile arasindaki farki merak ettim. Replace girilen bir değeri olduğu gibi, translate ise karakter karakter mi çeviriyor?

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

July 22, 2013

Tabii gösterdiğinden daha fazla satır yazırılıyor, değil mi? İç içe iki döngünün her birisi de 12 kere tekrarlandığı için toplam 12x12=14 satır...

Herhalde ç'leri c ile, ö'leri o ile, vs. değiştirmek istiyorsun. Bu gibi karışık durumlarda write ve arkadaşlarından yararlanmanı öneririm. :) Neden yanlış olduğunu hemen görürsün:

       foreach(string yazdir; icerik)
       {
           foreach(string duzelt; duzenle)
           {
               writefln("%s -> %s", yazdir, duzelt);

(Bu arada, yazdir ve duzelt gibi eylem içeren isimleri işlevlere ayırmak kodun anlaşılmasının kolaylaştırıyor.)

Çıktısı hatayı hemen gösteriyor:
'
ç -> c
şüğüıcö
ç -> o '<-- Ne? ç yerine o mu? :)'
..
'

Ali

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

July 22, 2013

Tabii sen çalışma olsun diye kendin yazıyorsun ama std.string modülünde tam da bu işi yapan bir işlev olduğunu hatırlatmak istedim:

module Dil;

import std.stdio;
import std.string;

void main()
{
   dchar[dchar] çeviri =
       [ 'ç':'c', 'ö':'o', 'ş':'s', 'ğ':'g', 'ü':'u', 'ı':'i',
         'Ç':'C', 'Ö':'O', 'Ş':'S', 'Ğ':'G', 'Ü':'U', 'İ':'I' ];

   auto dizgi = "şüğüıçö";
   writeln(translate(dizgi, çeviri));
}

Çıktısı:
'
suguico
'
Ali

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

July 22, 2013

Öncelikle, replace() std.array'de tanımlıymış; std.string'de değil.

replace(), verilen aralığı başka bir aralıkla değiştiriyor; translate ise belirtilen tablodaki dönüşümlerin hepsini uyguluyor.

Ali

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

July 24, 2013

Hocam peki bu

import std.string: replace;

ne ise yariyor?

std.array ile std.string'in sundugu olanaklar degisik mi?

bu gibi kullanimda ornegin;

import std.string: ddili;

olmasa bile hata vermez mi?

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

July 24, 2013

Alıntı (agora):

>

import std.string: replace;

ne ise yariyor?

"std.string modülündeki replace isimli olanağı buraya getir" anlamına geliyor. Bunun bir kaç yararı var:

  • Kodu okuyanlara belirli bir olanağın hangi modülden geldiğini açıklamış oluyor.

  • Birden fazla modül aynı isimde olanak tanımlamış olsa seçerek getirince isim çakışmaları önlenmiş oluyor.

Alıntı:

>

std.array ile std.string'in sundugu olanaklar degisik mi?

Bu modüllerde düzeltmeler yaptılar. string'ler de dizi olduklarından her diziye uygulanabilen olanaklar std.array'e kaydı, yalnızca string'ler için anlamlı olan olanaklar da std.string'e kaydı.

Alıntı:

>

import std.string: ddili;

olmasa bile hata vermez mi?

Denedim: hata veriyor. Ancak, std.string'de replace bulunmadığı halde neden hata vermediğinden emin değilim. replace artık std.array'in parçası. Olsa olsa, std.string 'public import std.array' dediği içindir ama onda da replace açıkça seçmiyor:

public import std.array : join, split;

Belki de bir derleyici hatasıdır ve yalnızca join ve split değil, bütün std.array public import ediliyordur. (Bu arada, o public import geçici olarak oradaymış. İleride kalkacak.)

Özet: replace için std.string'i değil, std.array'i eklemek gerek.

Ali

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

July 25, 2013

Alıntı:

>

Belki de bir derleyici hatasıdır ve yalnızca join ve split değil, bütün std.array public import ediliyordur. (Bu arada, o public import geçici olarak oradaymış. İleride kalkacak.)

Peki hangi kütüphaneye taşınacakmış ?

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

« First   ‹ Prev
1 2