آموزش سیشارپ – بخش ۶۷
- مقدمه
آنچه را که در چند بخش اخیر در رابطه با آموزش زبان برنامهنویسی سیشارپ مطالعه کردهاید، در رابطه با مفاهیم شیءگرایی بود. دقت بفرمایید که ما بصورت حرفهای و تخصصی وارد این مباحث نشدیم و تنها هدف ما، معرفی آنها بود. از این به بعد قصد داریم که به مباحث معمولی سیشارپ بازگردیم و پس از آن، کار با دیتابیس را شروع کنیم.
- کار با فایلهای متنی در سیشارپ
بهعنوان یک برنامه نویس، شما میبایست که توانایی کار با برخی فایلها را در سیشارپ داشته باشید. بدین معنا که بتوانید فایلهایی را نظیر 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 به بررسی وجود فایل پرداختیم و ادامه مراحل را انجام دادهایم. بنظر می رسد که کد کاملاً واضح است و نیازی به توضیح ندارد.
سلام و خسته نباشید
میخواستم بدون راهی هست بشه کدهای یه برنامه رو نگاه کرد؟ به فرض یه برنامه برای وینفون من دانلود کنم بعد بخوام ببینم چطوری نوشتش؟ممنون میشم راهنمایی کنید
سلام دوست عزیزم،
تقریباً غیرممکن است. اطلاعات کافیای در این زمینه ندارم، اما کلاً به چنین فرآیندی -اگر اشتباه نکنم- اصطلاحاً میگن Decompile کردن.
موفق باشید.
ممنون از جوابتون یه سری نرم افزار پیدا کردم که بتونه بعضی از برنامه ها رو باز کنه مثلا برنامه های نوشته شده با سی شارپ رو ولی هنوز تو نشون دادن کدهای برنامه های وینفون مشکل داره
akheeeeeeeeeeeysh agha bel akhare hame download shoood in akhariam k pdf nadasht copy paste kardam faghaat bakhshe 24 pak shode fekr konam man alan az aval ta inja download kardaaam bakhsh 24 vojod nadasht age mishe linkesho bezariiiid mamnooooon mersiiiiiiii berim vase shoroooooo;)
سلام میشه در مرود برنامه زیر راهنمایی بکنید
برنامه ای بنویسید که نام ۵ نفر را دریافت کرده و سپس هرنام را به تعداد کاراکترش چاپ کند
ممنون میشم راهنمایی کنید
بسیار عالی ، منتظر ادامه آموزش ها هستم
بسیااااااااااااااااااااااااااااااااااااااااااار خوب
وری گود