کار با فایلهای متنی
جلسات دوره
11
مدرس:
مهدی احمدی
از سال 1380 برنامه نویسی را شروع کرده و از سال 90 در این زمینه تدریس میکنم .با زبانهای سی پلاس پلاس ، سی ،پاسکال ،VB ، سی شارپ ،اسمبلی، جاوا و .... کار کرده و آنها را تدریس کرده ام.هم اکنون نیز مشغول تدریس در دانشگاه هستم و مدتی است با سایت درسمن همکاری میکنم مشاهده رزومه
مفهوم فایل:
هنگامی که داده هایی را از کاربر دریافت میکنیم این داده ها در متغییرهایی ذخیره میکنیم. این متغییرها در حافظه اصلی هستند و اگر ما برنامه را ببندیم و یا سیستم را خاموش کنیم دادههای موجود در حافظه اصلی از بین میروند پس متغییرهای ما از بین میروند و داده هایی که از کاربر گرفته ایم به طور کل پاک میشوند.
هنگامی که داده هایی را از کاربر دریافت میکنیم این داده ها در متغییرهایی ذخیره میکنیم. این متغییرها در حافظه اصلی هستند و اگر ما برنامه را ببندیم و یا سیستم را خاموش کنیم دادههای موجود در حافظه اصلی از بین میروند پس متغییرهای ما از بین میروند و داده هایی که از کاربر گرفته ایم به طور کل پاک میشوند.
اگر ما بخواهیم اطلاعاتی را که از کاربر دریافت میکنیم برای همیشه داشته باشیم باید انها را در حافظه جانبی ذخیره کنیم، واحد ذخیره سازی داده ها در حافظه جانبی File است یعنی همان طور که ما در حافظه اصلی داده ها را در متغییر ذخیره میکنیم در حافظه جانبی دادهها را باید در File ذخیره کنیم.
• نحوه ایجا کردن File و نوشتن در آن:
قصد داریم یک برنامهای درست کنیم که با کلیک کردن بر روی یک دکمه متن( به نام خدا ) ذخیره شود .
ابتدا یک دکمه ایجاد میکنیم و با تغییرات دلخواه، روی دکمه دوبلکلیک میکنیم تا رویداد پیشفرض که کلیک است فعال و متد آن ایجاد شود.
برای ذخیره کردن متن (به نام خدا) ابتدا باید به کلاس File دسترسی داشته باشیم که به صورت زیر است.
قصد داریم یک برنامهای درست کنیم که با کلیک کردن بر روی یک دکمه متن( به نام خدا ) ذخیره شود .
ابتدا یک دکمه ایجاد میکنیم و با تغییرات دلخواه، روی دکمه دوبلکلیک میکنیم تا رویداد پیشفرض که کلیک است فعال و متد آن ایجاد شود.
برای ذخیره کردن متن (به نام خدا) ابتدا باید به کلاس File دسترسی داشته باشیم که به صورت زیر است.
System.io.File
کلاس Fileدارای یک سری متد است که به کمک این متدها میتوان کارهای زیادی اعم از حذف، نوشتن و ...
بر روی متن انجام داد و متد مورد نیاز برای نوشتن WriteAllaText است.
این متد دارای دو ورودی است:
1. آدرس محل ذخیره فایل
2. متن
که به صورت زیر به این متد داده میشود.
بر روی متن انجام داد و متد مورد نیاز برای نوشتن WriteAllaText است.
این متد دارای دو ورودی است:
1. آدرس محل ذخیره فایل
2. متن
که به صورت زیر به این متد داده میشود.
private void button1_Click(object sender, EventArgs e)
{
System.IO.File.WriteAllText("F:\Learn\windows\form", "به نام خدا");
}
توجه: بعد از اینکه آدرس محل ذخیره را وارد کردید باید یک نام برای فایل مورد نظر بنویسید که به صورت زیر نوشته میشود.
private void button1_Click(object sender, EventArgs e)
{
System.IO.File.WriteAllText("F:\Learn\windows\form\نام برای فایل"","به نام خدا");
}
توجه: محیط کدنویسی سیشارپ از علامت ( \ ) خطا گرفته میشود، چرا که به عنوان کارکترهای کنترلی استفاده میشوند، شما میتوانید برای رفع این مشکل علامت ( @ ) را قبل از دوبل کتیشن قرار دهید .
private void button1_Click(object sender, EventArgs e)
{
System.IO.File.WriteAllText(@"F:\Learn\windows\form\نام برای فایل"","به نام خدا");
}
برنامهای که در بالا نوشته شد هر بار که کاربر برنامه را اجرا کند، متن ( به نام خدا ) به صورت پیش فرض در مکان پیشفرض ذخیره میشود. حال میخواهیم برنامه را به شیوهای درست کنیم که متن وارد شدهی کاربر ذخیره شود.
در Form یک Textboxt ایجاد میکنیم و بجای متن پیش فرض خودمان اسم Textboxبا متد Text را قرار میدهیم.
private void button1_Click(object sender, EventArgs e)
{
System.IO.File.WriteAllText(@"F:\Learn\windows\form\نام برای فایل"",نام کادر متن.text);
}
با این کار هر متنی که کاربر وارد کند در File ذخیره میشود.
در ادامه برای اینکه یک برنامهای کاملا پویا داشته باشیم اجازه میدهیم که کاربر محل ذخیره سازی File را خود وارد کند. در ابتدای کار یک Save File Dialog به Form اضافه میکنیم و آن را به کاربر نمایش میدهیم، البته میتوان در کد شرطی قرار داد که اگر کاربر ok کرد به کاربر نمایش داده شود و این آدرس را جایگزین آدرس پیشفرض کند.
در ادامه برای اینکه یک برنامهای کاملا پویا داشته باشیم اجازه میدهیم که کاربر محل ذخیره سازی File را خود وارد کند. در ابتدای کار یک Save File Dialog به Form اضافه میکنیم و آن را به کاربر نمایش میدهیم، البته میتوان در کد شرطی قرار داد که اگر کاربر ok کرد به کاربر نمایش داده شود و این آدرس را جایگزین آدرس پیشفرض کند.
private void button1_Click(object sender, EventArgs e)
{
System.IO.File.WriteAllText(SaveFileDialog1.FileName,نام کادر متن.text);
}
• نحوه باز کردن فایل :
دکمه دیگر به منظور باز کردن فایل ایجاد میکنیم و میخواهیم زمانی که کاربر بر روی این دکمه کلیک کرد فایل مورد نظر را انتخاب کند تا متن داخل فایل را نمایش دهد. ابتدا باید یک Open File Dialog به Form اضافه میکنیم و آن را به کاربر نمایش میدهیم تا کاربر فایل مورد نظر خود را انتخاب کند و اگر ok کرد متن داخل فایل را برای ما نمایش دهد. برای این کار کلاس system.io.fileمتدی دارد به نام Read All Text که این متد از ما یک آدرس میخواهد که ما میتوانیم از Filename.Open File Dialog به عنوان آدرس استفاده کنیم. در ادامه متنی که توسط Open File Dialog خوانده میشود باید در Textbox نمایش داد.
دکمه دیگر به منظور باز کردن فایل ایجاد میکنیم و میخواهیم زمانی که کاربر بر روی این دکمه کلیک کرد فایل مورد نظر را انتخاب کند تا متن داخل فایل را نمایش دهد. ابتدا باید یک Open File Dialog به Form اضافه میکنیم و آن را به کاربر نمایش میدهیم تا کاربر فایل مورد نظر خود را انتخاب کند و اگر ok کرد متن داخل فایل را برای ما نمایش دهد. برای این کار کلاس system.io.fileمتدی دارد به نام Read All Text که این متد از ما یک آدرس میخواهد که ما میتوانیم از Filename.Open File Dialog به عنوان آدرس استفاده کنیم. در ادامه متنی که توسط Open File Dialog خوانده میشود باید در Textbox نمایش داد.
private void button2_Click(object sender, EventArgs e)
{
if (openFileDialog1.ShowDialog() == DialogResult.OK)
{
txtmatn.text = System.IO.File.ReadAllText(openFileDialog1.FileName);
}
}
• اضافه کردن متن به فایل های ذخیره شده:
یک Textbox و یک دکمه ایجاد کرده تا هنگامی که کاربر بر روی این دکمه کلیک کرده، فایل مورد نظر خود را انتخاب کند و متنی را که در Textbox دوم نوشته به آن فایل اضافه کند.
ازopen file dialog که قبلا به Form اضافه کردهایم استفاده میکنیم و آن را به کاربر نمایش میدهیم و از متد دیگر کلاس System.io.File که به نام AppendAllText هست استفاده میکنیم و این متد از ما آدرس و متن میخواهد که میتوانیم از Open File Dialog برای آدرس و برای متن از Textbox دوم استفاده کنیم.
یک Textbox و یک دکمه ایجاد کرده تا هنگامی که کاربر بر روی این دکمه کلیک کرده، فایل مورد نظر خود را انتخاب کند و متنی را که در Textbox دوم نوشته به آن فایل اضافه کند.
ازopen file dialog که قبلا به Form اضافه کردهایم استفاده میکنیم و آن را به کاربر نمایش میدهیم و از متد دیگر کلاس System.io.File که به نام AppendAllText هست استفاده میکنیم و این متد از ما آدرس و متن میخواهد که میتوانیم از Open File Dialog برای آدرس و برای متن از Textbox دوم استفاده کنیم.
private void button3_Click(object sender, EventArgs e)
{
if (openFileDialog1.ShowDialog() == DialogResult.OK)
{
نام کادرمتن.text=System.IO.File.ReadAllText(openFileDialog1.FileName,txtapp.tex);
}
}
نظر شما در تصمیم دیگران اثرگذار است.
لطفا برای همراهان درسمن و بهتر شدن دوره نظر خود را بنویسید.