Jump to page: 1 25  
Page
Thread overview
Yanlışım Nerede
Jul 09, 2012
huseyin
Jul 09, 2012
huseyin
Jul 09, 2012
huseyin
Jul 09, 2012
huseyin
Jul 09, 2012
huseyin
Jul 09, 2012
Kadir Can
Jul 09, 2012
huseyin
Jul 09, 2012
Kadir Can
Jul 09, 2012
huseyin
Jul 09, 2012
Kadir Can
Jul 10, 2012
huseyin
Jul 10, 2012
zafer
Jul 11, 2012
huseyin
Jul 11, 2012
zafer
Jul 12, 2012
huseyin
Jul 12, 2012
zafer
Jul 12, 2012
huseyin
Jul 12, 2012
Kadir Can
Jul 12, 2012
huseyin
Jul 12, 2012
Kadir Can
Jul 12, 2012
huseyin
Jul 12, 2012
Kadir Can
Jul 12, 2012
huseyin
Jul 12, 2012
Kadir Can
Jul 12, 2012
huseyin
Jul 12, 2012
Kadir Can
Jul 12, 2012
huseyin
Jul 12, 2012
Kadir Can
Jul 12, 2012
huseyin
Jul 12, 2012
huseyin
Jul 12, 2012
huseyin
Jul 13, 2012
Kadir Can
Jul 13, 2012
huseyin
Jul 13, 2012
Kadir Can
Jul 13, 2012
huseyin
Jul 13, 2012
Kadir Can
Jul 13, 2012
huseyin
Jul 13, 2012
huseyin
Jul 09, 2012
huseyin
Jul 09, 2012
huseyin
July 09, 2012

Arkadaşlar Ali Hoca nın tavsiyesi ile vtd ye yeniden bir el attım ama derlenirken derleme başarılı deneme çalıştırılınca " Segmentation fault " Return Code :139 Hatası veriyor sebebi nedir yardımcı olur musunuz ?

module vt;
import std.path;
import std.datetime;
import std.process;
import std.stream;
import std.conv;
import std.string;
import std.file;
import std.cstream;
import std.array;
import crypt;

class Database
{
	Subtable [string] database;

}//end of class

class Subtable
{
	Data [string] subtables;
}//end of class

class Data
{
	string[] datas;
}//end of class

class InOut
{
	Database dbopen(string dbname)
	{

		Database db;
		Data data;
		Subtable subtable;
		scope File myfile = new File(dbname,FileMode.In);

		string currenttable;
		string currentkey;
		string[] currentdatas;
		while(myfile.available)
		{
			char[] line_c = myfile.readLine();
			string line_s = to!(string)(line_c);
			if(line_c[0..2]=="|;")
			{
				currenttable=replace(line_s,"|;","");
			}
			else if(line_c[0..2]=="*;")
			{
				currentkey=replace(line_s,"*;","");
			}
			else
			{
				data.datas~=line_s;
				subtable.subtables[currentkey]=data;
				db.database[currenttable]=subtable;
			}
		}

		return db;
	}

}//end of class



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

July 09, 2012

BU da deneme.d

import std.path;
import std.datetime;
import std.process;
import std.stdio;
import std.conv;
import std.string;
import std.file;
import std.array;
import vt;



void main()
{
	Database dbase = new Database;
	InOut io = new InOut;
	dbase = io.dbopen("db.vt");

	writeln(dbase.database);
}

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

July 09, 2012

null olmasının sebebi nedir bunu nasıl giderebiliriz ?

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

July 09, 2012

hmm dbopen ın döndürdüğü değerle

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

July 09, 2012

Alıntı (huseyin325325):

>
> 	dbase = io.dbopen("db.vt");
>
> 	writeln(dbase.database);
> ```

>

InOut.dbopen() null döndürdüğü için 'dbase' null oluyor. O yüzden dbase.database diyemeyiz.

Ali

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

dbopen() içinde db isminde bir değişken var. O değişken bir class türünde olduğu için ilk değeri null'dır. dbopen() onu olduğu gibi döndürüyor.

Burada tasarıma karar vermek gerek. main() içindeki dbase değişkeni main içinde mi new ile ilklenmeli yoksa dbopen()'ın döndürdüğü değerle mi?

Ali

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

July 09, 2012

Yani şöyle olabilir:

   Database dbopen(string dbname)
   {
       Database db = new Database;
       // ...
    }
// ...
   InOut io = new InOut;
   Database dbase = io.dbopen("db.vt");

Ali

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

July 10, 2012

Böyle yapmak yerine hiyerarşide en altta kalan sınıfta bir toString() işlevi yazarak pratikleştirebilirsin.

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

July 10, 2012

O sınıfların nesneleri olduğu için değerler değiştiğinde orada da değişecektir.
Değişmezlik istiyorsan immutable ile işaretleyebilirsin, dışarıdan erişimi önlemek için sarma kullanabilirsin.
Burada sanırım en alttaki sınıf(Hepsine erişim sağlayan sınıf) InOut sınıfı, toString()'i orada tanımlayabilirsin.

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

July 10, 2012

Şu halde mümkün değil gibi görünüyor. Sonuçta sınıfı kurarken kullandığın için bağlantısı olacaktır.
Biraz tasarım muhabbeti her zaman iyidir. :)
Burada bir dbase için birden çok sınıf var.Eğer o sınıflar kendi işlevlerini içermeyecekse, sadece veri türlerini oluşturmak içinse tek bir sınıf altında birleştirebiliriz gibi geliyor. Eğer ileride kendi işlevleri olacaksa ayrı kalmaları daha iyi olur.

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

« First   ‹ Prev
1 2 3 4 5