PDA

View Full Version : مبتدی: ذخیره مقادیر property ها در یک فایل متنی



CodeforLife
پنج شنبه 05 فروردین 1395, 14:59 عصر
سلام دوستان گرامی .
من در برنامه ای که نوشتم میخوام مقادیر proprty های کلاس رو در فایل متنی بنویسه .
فایل رو ایجاد میکنه ولی متاسفانه چیزی نمی نویسه !

private void toolStripButton1_Click(object sender, EventArgs e)
{
string pth = Path.GetFullPath(@"./") + "Save.txt";
FileStream fs = new FileStream(pth, FileMode.Create);
StreamWriter sw = new StreamWriter(fs);
foreach (Shape shapes in ListOfProperties.Items)
{
shapes.Save(sw);
}
}




این کدها هم مربوط به متد کلاسم هست ..
به نظرتون چه اشکالی داره؟؟؟؟؟
لطفا راهنماییم کنید دوستان


public override void Save(StreamWriter sw)
{
sw.WriteLine("{0}.{1}.{2}.{3}.{4}.{5}.{6}", name, strockcolor, strockwidth, x, y, width, height);
}

prans_tork
پنج شنبه 05 فروردین 1395, 22:33 عصر
سلام دوستان گرامی .
من در برنامه ای که نوشتم میخوام مقادیر proprty های کلاس رو در فایل متنی بنویسه .
فایل رو ایجاد میکنه ولی متاسفانه چیزی نمی نویسه !

private void toolStripButton1_Click(object sender, EventArgs e)
{
string pth = Path.GetFullPath(@"./") + "Save.txt";
FileStream fs = new FileStream(pth, FileMode.Create);
StreamWriter sw = new StreamWriter(fs);
foreach (Shape shapes in ListOfProperties.Items)
{
shapes.Save(sw);
}
}




این کدها هم مربوط به متد کلاسم هست ..
به نظرتون چه اشکالی داره؟؟؟؟؟
لطفا راهنماییم کنید دوستان


public override void Save(StreamWriter sw)
{
sw.WriteLine("{0}.{1}.{2}.{3}.{4}.{5}.{6}", name, strockcolor, strockwidth, x, y, width, height);
}





متغیر های name, strockcolor, strockwidth, x, y, width, height رو قبل از فراخوانی متد Save مقدار دادی آیا؟
و اینکه "./" هم مشکوک میزنه.
به نظرت نباید بک اسلش باشه؟

CodeforLife
جمعه 06 فروردین 1395, 03:42 صبح
سلام .ممنونم
تمامی property ها در ctor() مقدار دهی میشن ...
"./" رو هم تغییر دادم نتیجه نگرفتم قربان ...

prans_tork
جمعه 06 فروردین 1395, 06:36 صبح
سلام .ممنونم
تمامی property ها در ctor() مقدار دهی میشن ...
"./" رو هم تغییر دادم نتیجه نگرفتم قربان ...



به این صورت بنویس و تست کن:


private void toolStripButton1_Click(object sender, EventArgs e)
{
string pth = Path.GetFullPath(@"./") + "Save.txt";
TextWriter wt = new StreamWriter(pth, false, Encoding.Default);
string str;
foreach (Shape shapes in ListOfProperties.Items)
{
str = string.Empty;
str = string.Format("{0}.{1}.{2}.{3}.{4}.{5}.{6}", shapes.name, shapes.strockcolor, shapes.strockwidth, shapes.x, shapes.y, shapes.width, shapes.height);
shapes.Save(str);
}
}


public override void Save(string str)
{
string pth = Path.GetFullPath(@"./") + "Save.txt";
TextWriter tw = new StreamWriter(pth, false, Encoding.Default);
tw.WriteLine(str);
tw.Close();
}

ShineOne
جمعه 06 فروردین 1395, 06:53 صبح
سلام.
آرگومان Append رو در حالت True قرار بده :

StreamWriter file = new StreamWriter(_fileName, true);
در غیر اینصورت فایل رو Overwrite میکنه

CodeforLife
جمعه 06 فروردین 1395, 07:56 صبح
سلام .به فرمایش هر دو شما بزرگوار عمل کردم , ولی مسزله حل نشد .
مقادیر رو که بررسی میکنم کامل تغییر میکنه فقط نمی نویسه !
چرا؟؟؟؟

vb8334
جمعه 06 فروردین 1395, 09:24 صبح
سلام

دوست عزیز من این کد رو تست کردم کار میکنه شما هم تست کن.




private void toolStripButton1_Click(object sender, EventArgs e)
{
try
{
string pth = Path.GetFullPath(@"./") + "Save.txt";


using (StreamWriter sw = new StreamWriter(pth, true))
{
foreach (Shape shapes in ListOfProperties.Items)
{
shapes.Save(sw);
}
}
}
catch (Exception ex)
{
throw ex;
}
CustomeMessageBox.ShowBox("kkk");
}