PDA

View Full Version : عدم نوشتن مقادبر جدید در فایل



hanis29268
شنبه 22 بهمن 1390, 22:17 عصر
با سلام
من یک فرم دارم که شامل دوbutton و یک richtext است
با یک button فایل txt را میخوتنم و زمانی که میخواهم با button دیگر روی آن بنویسم نمیدونم مقدار stream writer رو چی بزارم؟؟
کمکم کنید private void button1_Click(object sender, EventArgs e)
{
OpenFileDialog op=new OpenFileDialog();
op.Filter="Text files|*.txt";

DialogResult dr = op.ShowDialog();
StreamReader sr = new StreamReader(op.FileName );
richTextBox1.Text = sr.ReadToEnd();
sr.Close();

}

private void button2_Click(object sender, EventArgs e)
{
StreamWriter sr = new StreamWriter( ?????? );
sr.WriteLine(richTextBox1.Text);

sr.Close();

}

night_secret
شنبه 22 بهمن 1390, 22:26 عصر
دوست من فایل برنامه رو بزار واسن درست کنم

s.khoshfekran
شنبه 22 بهمن 1390, 22:46 عصر
sr.Flush() را اضافه کن قبل از sr.close ببین درست میشه یا نه

gwbasic
شنبه 22 بهمن 1390, 22:48 عصر
راه حل بسیار ساده هست!
شما نام فایلی رو که هنگام Load توسط OpenFileDialog گرفته اید رو هنگام ذخیره نیاز دارید. در حقیقت شما به متغیری نیاز دارید که در یک متد Button1_Click مقدار دهی می شود و در متد دیگر button2_Click استفاده می شود.

بنابراین شما باید یک ... در سطح ... تعریف کنید تا در همه متدها در دسترس باشد.

hanis29268
یک شنبه 23 بهمن 1390, 00:02 صبح
راه حل بسیار ساده هست!
شما نام فایلی رو که هنگام Load توسط OpenFileDialog گرفته اید رو هنگام ذخیره نیاز دارید. در حقیقت شما به متغیری نیاز دارید که در یک متد Button1_Click مقدار دهی می شود و در متد دیگر button2_Click استفاده می شود.

بنابراین شما باید یک ... در سطح ... تعریف کنید تا در همه متدها در دسترس باشد.
اگه منظورتون متغییر سراسری انجام دادم،ولی حواب نداد

gwbasic
یک شنبه 23 بهمن 1390, 08:01 صبح
اگه منظورتون متغییر سراسری انجام دادم،ولی حواب نداد

نمی دونم منظورتون از متغیر سراسری چی هست (هرچی که هست تحت این عنوان نباید استفاده شود)
اگر مروری روی مفاهیم شی گرایی داشته باشیم. موضوع روشن خواهد شد. یک فرم داریم و فرم یک کلاس هست پس قوانین حاکم بر کلاس قابل استفاده هست. کلاس از یک سری اعضا تشکیل شده که شامل فیلد ، پراپرتی ، متد و ... می باشد. فیلدها و پراپرتی ها در سطح کلاس (فرم) تعریف می شوند و در نتیجه در تمام متدهای و دیگر اعضای کلاس (فرم) قابل استفاده هستند.
بنابراین جواب شما تعریف یک فیلد یا متغیر در سطح فرم هست. فرض کنید فیلدی با نام CurrentFileName تعریف کردید. کافیه در button1_Click آنرا مقداردهی کنید. CurrentFileName = op.FileName و الی آخر

چرا می گید نمیشه؟ از جملات کلی استفاده نکنید. موضوع رو تشریح کنید بگید چه کدی نوشتید و چه اتفاقی افتاده

موفق باشید