آفتاب هشتم

آموزش سی‌شارپ – بخش ۶۷

۲۹ آبان ۱۳۹۵

۲ سال قبل در: آموزش۷ نظر

مقدمه

آنچه را که در چند بخش اخیر در رابطه با آموزش زبان برنامه‌نویسی سی‌شارپ مطالعه کرده‌اید، در رابطه با مفاهیم شیءگرایی بود. دقت بفرمایید که ما بصورت حرفه‌ای و تخصصی وارد این مباحث نشدیم و تنها هدف ما، معرفی آن‌ها بود. از این به بعد قصد داریم که به مباحث معمولی سی‌شارپ بازگردیم و پس از آن، کار با دیتابیس را شروع کنیم.

کار با فایل‌های متنی در سی‌شارپ

به‌عنوان یک برنامه نویس، شما می‌بایست که توانایی کار با برخی فایل‌ها را در سی‌شارپ داشته باشید. بدین معنا که بتوانید فایل‌هایی را نظیر Text Files, Html Files و … را باز کرده، روی آن‌ها پردازش‌هایی را انجام دهید و در نهایت آن‌ها را ذخیره کنید. در این بخش، شما با نحوه باز کردن فایل‌ها آشنا می‌شوید.
در قدم اول، کاری که می‌خواهیم انجام دهیم، باز کردن یک فایل متنی و درج متن در آن است. پس برای شروع، ابتدا یک پروژه جدیدی را در Visual Studio آغاز کنید. یک Textbox و یک button در فرم خود قرار دهید؛ مشخصه MultiLine را برای Textbox از پنجره Properties فعال نمایید. (روی True قرار دهید)
پیش از آنکه بر روی button خود دابل کلیک کنید تا وارد بخش کدنویسی آن شوید، یک فایل متن ایجاد کنید. برای اینکار از Windows Notepad استفاده کرده و فایل زیر را ایجاد نمایید:
آموزش سی‌شارپ – بخش ۶۷
سپس آن را در مکان مورد نظرتان ذخیره کنید. پیشنهاد می‌کنیم که آن را در پوشه Documents خود با نام text1.txt ذخیره کرده؛ مسیر فایل شما بصورت زیر خواهد بود:
“C:\\Users\\Owner\\Documents\\test1.txt”
اما چونکه ما این فایل را در Documents ذخیره کرده‌ایم، پس برای دسترسی به آن، می‌توانیم بصورت زیر عمل کنیم:
string fldr =”\\test1.txt”;
fldr = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + fldr
حال، هنگامی که فایل را بصورت ذخیره شده بر روی سیستم خود دارید، کافیست بر روی button خود دابل کلیک کنید تا وارد بخش کدنویسی آن شوید. کافیست که کدهای زیر را در داخل آن بنویسید:
آموزش سی‌شارپ – بخش ۶۷
کاربران ویندوز XP دقت کنند که از کدهای بالا نمی‌توانند استفاده کنند؛ از آنجایی که ویندوز XP از پشتیبانی مایکروسافت خارج شده، لذا ما نیز در اینجا آن‌ها مطرح نخواهیم کرد؛ فقط دقت کنید در صورتی که فایل text1.txt را در درایو C خود ذخیره کرده‌اید، کد زیر جوابگو خواهد بود:
آموزش سی‌شارپ – بخش ۶۷
اگر دقت کنید، ما بجای استفاده از یک Backslash (یعنی ‘\’) از دو عدد استفاده کردیم. اگر که از یک عدد از آن استفاده کنید، سی‌شارپ متوجه منظورتان نخواهد شد، چونکه کارکتر \ جزو کارکترهای ویژه است و به سی‌شارپ اعلام می‌کند که پس از آن قرار است یک کارکتر ویژه‌ای بیاید.
برای اینکه فایل را باز کنید، سی‌شارپ از چیزی با نام StreamReader استفاده می‌کند. این کلاس بصورت داخلی تعبیه شده و نیازی به پیاده‌سازی آن ندارید. این کلاس در namespace مربوط به I/O می‌باشد، در نتیجه برای دسترسی به آن و ساخت یک متغیر از جنس StreamReader، می‌بایست به شکل زیر عمل کنید:
System.IO.StreamReader objReader
حال، شما می‌بایست که آدرس فایلتان را به این شیء اعلام کنید:
آموزش سی‌شارپ – بخش ۶۷
ما در عکس فوق، نسخه ویندوز XP را تکمیل کرده‌ایم، اما همین مراحل در رابطه با ویندوزهای بعد از XP کارساز خواهد بود. حال که ما شیء objReader را داریم، می‌توانیم که از Propertyها و methodهای آن استفاده کنیم. برای اینکه اطلاعات موجود داخل فایل متنی خودمان را وارد textbox کنیم، می‌توانیم که از متد ReadToEnd() استفاده کنیم. پس کد زیر را قرار دهید:
textBox1.Text = objReader.ReadToEnd();
وقتی که StreamReader را باز کرده‌ایم و فایل را خواندیم، می‌بایست که پس از آن فایل بسته شود. پس کد زیر را نیز قرار دهید:
objReader.Close();
در نهایت، کدهای شما باید شکل و شمایل زیر را داشته باشد:
آموزش سی‌شارپ – بخش ۶۷
حال برنامه خود را اجرا کرده و آن را امتحان کنید. پس از کلیک بر روی button، میبایست که محتوای داخل فایل متن خود را در textbox مشاهده کنید.
برنامه خود را متوقف کنید؛ به کدهایتان باز کردید. سعی کنید که مسیر فایل را عمداً اشتباه وارد کنید. برای مثال، نام فایل را به نامی تغییر دهید که وجود نداشته باشد. حال برنامه‌ی خود را اجرا کنید، با خطای زیر مواجه خواهید شد:
آموزش سی‌شارپ – بخش ۶۷
برای جلوگیری از نمایش این خطا، می‌توانیم ابتدا بررسی کنیم که آیا فایل مورد نظر ما موجود است، در صورت وجود، آن را باز کنیم. پس کدهای زیر را جایگزین کنید:
آموزش سی‌شارپ – بخش ۶۷
می‌بینید که با استفاده از دستورات شرطی if … else این مشکل را حل کرده‌ایم. در شرط if، با استفاده از متد Exists به بررسی وجود فایل پرداختیم و ادامه مراحل را انجام داده‌ایم. بنظر می رسد که کد کاملاً واضح است و نیازی به توضیح ندارد.

گرداوری شده توسط سایت پی سی ۲۰