آموزش سی‌شارپ C# – بخش ۳۰

آموزش سی‌شارپ C# – بخش ۳۰
  • 1392/1/20
  • Jeff Mosawy
  • 26
  • مقدمه

در بخش قبلی توانستیم که توسط یک Open File Dialog، عکسی را فرخوانی کنیم و آن را در فرم خود قرار دهیم. البته این کار توسط کاربر انجام می‌شد؛ ونه خود برنامه‌نویس (که ما باشیم!)

اما این تنها کار نیست؛ ما می‌توانیم توسط همین Open File Dialog، فایل‌های دیگه‌ای را باز و فراخوانی کنیم. این‌بار قصد داریم که این کار را توسط یک فایل متنی انجام دهیم. مسائل ریزی در آن وجود دارد که دانستن آن‌ها بد نیست.

  • فراخوانی یک فایل متنی توسط Open File Dialog

احتمالاً یادتان نرفته است که چطور و با چه دستوری می‌توانستیم برای فرمت فایل‌هایی که Open File Dialog اجازه باز کردن آن‌ها را دارد، محدودیت تعیین کنیم. در بخش ۲۹ ما فقط برای عکس این محدودیت را قائل شدیم؛ این‌بار برای متن خواهد بود!

اینبار، نوع دیگری را از Text Box ها را اضافه خواهیم کرد –با نام Rich Text Box. این شیء این قابلیت را به ما خواهد داد که مستقیماً متن داخل یک فایل TXT را وارد Rich Text Box کنیم. پس برگردیم به منوی ToolBox و یک شیء از Rich Text Box در فرم خود قرار دهید.

1-richTextBox

شما احتمالاً باید سایز فرم خود را کمی تغییر دهید تا علاوه بر ابزارهای موجود از قبل، ابزار فعلی خود را نیز جا دهید. در هر حال، فرم شما باید شکلی شبیه به شکل زیر را داشته باشد:

2-Form_RichTB

Box (که پایین‌ترین Text Box موجود در فرم فوق می‌باشد) خیلی شبیه به جعبه‌متن معمولی می‌باشد؛ اما کارهای بیشتری را نسبت به آن‌ها می‌توانید انجام دهید. یکی از متدهای موجود در Rich Text Box، متد LoadFile() می‌باشد که ما توسط آن فایل متن خود را فراخوانی خواهیم کرد.

حال که Rich Text Box را اضافه کردید و فرم شما به شکل زیر است، کدهای مربوط به گزینه Open از منوی File فرم خود را آماده کنید:

3-File_Open_ofd

ما می‌توانیم کدهای قبلی‌ای که در بخش ۲۹ نوشتیم را اینجا هم اضافه کنیم؛ پس می‌نویسیم:

string Chosen_File = “”;

openFD.InitialDirectory = “C:”;

openFD.Title = “Open a Text File”;

openFD.FileName = “”;

تنها چیزی که نسبت به کدهای بخش ۲۹ تغییر کرده، عنوان پنجره دیالوگ می‌باشد. برای ادامه کار، می‌بایست که فیلترگذاری انواع فایل‌های قابلیت باز شدن در این دیالوگ را مشخص کنیم. پس برای خط بعدی کد خود، یک خط زیر را اضافه می‌کنیم:

openFD.Filter = “Text Files|*.txt|Word Documents|*.doc”;

ابزار Rich Text Box هم می‌تواند فایل‌های .txt را باز کند و هم فایل‌های Microsoft Word.

قدم بعدی، نمایش دیالوگ باز کردن فایل است؛ کاری را که در بخش ۲۹ انجام دادیم را تکرار می‌کنیم:

if (openFD.ShowDialog() != DialogResult.Cancel)

{

            Chosen_File = openFD.FileName;

            richTextBox1.LoadFile(Chosen_File, RichTextBoxStreamType.Plain Text);

}

اگرچه تقریباً کدهای بالا، همانند کدهای قبل می‌باشد، اما باید به خط آخر کد کمی دقت کنید؛ چرا که تفاوتی را دارد که احتمالاً شما با آن آشنایی ندارید. (فعلاً نیازی برای دانستن وجود ندارد)

برنامه خود را اجرا کنید و نتیجه را امتحا کنید. در بخش بعدی آموزش، نحوه ایجاد یک Save As Dialog را آموزش خواهیم داد که چگونه می‌توانید پس فراخوانی یک متن و اعمال تغییرات بر روی آن، آن را ذخیره‌سازی کنید!

جهت دریافت این بخش آموزشی به‌صورت یک فایل PDF، اینجا را کلیک کنید.

دیدگاه خود را وارد کنید
تعداد دیدگاه ها : 26 دیدگاه
  1. خسته نباشی
    با اینکه سرت شلوغه ولی بازم وقت میزاری
    پیش بینی میکنی چند جلسه آموزش داشته باشیم؟
    به شی گرایی کی میرسیم؟/

    1. سلام دوست عزیزم،

      واقعاً ممنونم از اینکه درک‌م کردی! راستش خودم جدولی برای تعیین میزان جلسات نذاشتم و دارم قدم به قدم می رم جلو. اما طبق جدول موضوع‌بندی‌ای که جلو من هست، احتمالاً بالغ بر ۱۰۰ یا ۱۵۰ جلسه خواهیم داشت.
      موضوعاتی که قراره بعد از این مباحث داشته باشیم، نحوه اجرا و خطایابی برنامه، متدها و توابع، آریه‌ها، رشته‌ها و Event ها هست. بعد از این‌ها، مباحث مربوط به Class و کلاً شیء گرایی شروع خواهد شد که سایت اصلی زیاد به این موضوع نپرداخته. احتمالاً در مبحث شیء گرایی مستقل از سایت اصلی فعالیت خواهم کرد و بیشتر از آموزه‌های خودم استفاده خواهم کرد. البته چیزی که در سایت اصلی مطرح شده، بسیار عالی هست خصوصاً برای افرادی که تا حالا با شیءگرایی آشنایی نداشتند. تا اون موقع انشاءالله اگر عمری برای من باقی مانده بود، تصمیمی می‌گیرم که به نفع اکثریت باشه.

      موفق باشید!

    1. سلام دوست عزیز،

      با عرض پوزش، PDF رو به‌زودی قرار خواهم داد.
      موفق و موید باشید.

  2. منم درکت میکنم ولی خوب چون من خیلی انتظار می کشم برای جلسه بعدی برام سخته دیگه. شما فکر نکن درکت نمی کنم. انشاالله اون جاهایی که لازم شد از آموزش های خودت استفاده کنی تاثیری تو زمان قرار دادن آموزشهات نداشته باشه.
    بازم تشکر

    1. سلام دوست عزیزم،

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

      ممنونم از نظر لطف شما،
      موفق و موید باشید!

  3. سلام دوست عزيز اميدوارم كه روزگار بر وفق مرادتان باشد

    ممكنه سوالم كمي بچگانه باشد

    اما امروز كه اين مطالب رو ديدم كننجكاو شدم بدونم ايا با پيگيري و تمرين درسهايي كه حضرتعالي در اينجا مي گذاريد ايا مي شود برنامه نويس شد يا نه در ضمن خواهشي هم داشتم اينكه اگر مي شه مراجع و كتابهايي رو (ترجيحا” PDF و با زبان فارسي ) معرفي كنيد
    مجددا از حضرتعالي و ساير همكارانتان تشكر مي كنم
    موفق و مويد باشيد

    1. سلام دوست عزیز و خوبم،

      سوال شما بسیار خوب و بجا بود. ببینید شما هر کتاب و سایتی رو مراجعه کنید بالاخره باید از اول شروع کنه به یاد دادن و کاری که بنده هم دارم انجام می‌دم، شروع پایه‌ها هست؛ و انشاءالله اگر عمری برای ما باقی موند، قطعاً تا سطحی پیش خواهم رفت که بتونید تا یک سطحی از نرم‌افزارها رو خودتون بنویسید.
      من بیشتر قصدم توی این آموزش، علاوه بر اینکه خود سی‌شارپ رو یاد بدم، سعی می‌کنم اصطلاحات انگلیسی برنامه‌نویسی و موارد مربوطه رو آموزش بدم که اونقدری شما راحت بتونید یک کتاب انگلیسی رو مطالعه کنید.
      خودم شخصاً زیاد از کتاب‌های فارسی توی زمینه آموزش دلخوشی ندارم و زیاد هم پیشنهاد نمی‌کنم. من تنها و تنها یک‌بار کتاب فارسی در زمینه برنامه‌نویسی مطالعه کردم و اون هم برای آموزش زبان C بود. بعدش هم تا وسط‌های کتاب رها کردم و رفتم سراغ زبان C++ که از یک سایت انگلیسی زبان شروع کردم. همچنین زبان‌های C# و بقیه زبون‌هایی که رو تا حدی بلد هستم رو با مراجع انگلیسی پیش رفتم و واقعاً موارد خوبی رو یاد گرفتم.
      بعدش در زمینه برنامه‌نویسی، هیچ برنامه‌نویسی قرار نیست که تمامی چیزها رو بلد باشه. خود من همه چیز رو اصلاً بلد نیستم و شاید هم تا آخر عمرم هم بلد نباشم. برنامه‌نویس بر اساس نیازهایی که براش بوجود میاد، به‌دنبال یادگیری موارد جزیی می‌ره؛ وگرنه همین که شما پایه‌های برنامه‌نویسی و Syntax ها رو یاد بگیرید، خودش کفایت می‌کنه.

      امری باشه من در خدمت حضرت عالی هستم؛
      موفق و موید باشید!

    1. دوست عزیز سلام،
      فعلاً که تصمیمی بر توضیح این موارد رو ندارم؛ اما درآینده اگر فرصتی شد سعی‌ام رو خواهم کرد.
      موفق باشید!

  4. سلام واقعا خسته نباشی
    میشه خواهش کنم مرجع سایت انگلیسی رو هم بذاری
    در ضمن یه سوال داشتم وقتی من یک ورد را باز می کنم متن درهمی رو نشون میده من حتی یک متن انگلیسی رو هم باز کردم ولی همین مشکل را داشت میشه بگی اشکال از کجاست.

    1. سلام دوست عزیزم!
      من توی اولین بخش آموزشی که پست شماره ۱ هست منبع رو قرار داده بودم. البته دوباره برای شما هم قرار می‌دم. سایت مرجع بنده، وب‌سایت www.homeandlearn.co.uk هست.
      در رابطه با مشکل فایل متنی، شما فقط فایل Word رو امتحان کردید؟ فایل txt چطور؟ همین مشکل رو داشت آیا؟ فایل Word که فراخوانی کردید، آیا برای نسخه‌های بعد از ۲۰۰۷ بود که با فرمت .docx هست؛ و یا برای فرمت‌های قبل از ۲۰۰۷ که با پسوند .doc می‌باشد؟

    1. سلام دوست عزیز،

      مشکل حرف «ی» احتمالاً بدلیل کارکترهای فارسی هست … چونکه «ی» جزو یکی از حروف مشکل دار توی ویندوز هست. همچنین حرف «ک» همین مشکل را در بعضی سیستم‌ها دارد.

  5. با سلام و خسته نباشید
    خواستم از شما خواهش کنم سرعت فرستادن مطالب را بیشتر کنید.البته میدونم سرتون شلوغه ولی اگر میتونید مطالب را زود به زود بذارید واقعا به خاطر مطالب مفیدتون ممنون

    1. سلام دوست عزیزم،

      ممنونم از اینکه راضی هستید و قطعاً باعث خوشحالی من می‌شه، اما باور کنید دارم بیشترین سعی‌ام رو می‌کنم که مطالب رو زود به زود بزارم. شاید باورتون نشه، اما همه این آموزش‌ها بعد از ساعت ۱۲ یا ۱ نصف شب نوشته می‌شوند؛ زمانی‌ست که سرم تقریباً خلوت‌تر هست.
      اما باز هم سعی می‌کنم که زودتر مطالب رو بنویسم.
      موفق باشی عزیزم!

  6. با عرض سلام.
    مطالبتون واقعا خیلی خوبن من که واقعا استفاده کردم.
    ممنون.
    یه سوالم درباره این دو تا پست داشتم.
    چرا توی پست 29و30 برای افزودن تصویر یا یک متن وقتی به یه جا وارد میشی که اون عکسا یا یه متنی هست اصلا نشونشون نمیده و خودم باید اسمشو بزنم تا بیاد؟

    1. شاید چون برای Open file dialog تو قسمت filter نوع فایل هاتو مشخص نکردی

  7. سلام.
    خسته نباشی.
    میشه کد مربوط به وارد کردن متن فارسی رو تو rich text box بگی. چون متن فارسی رو ناخوانا میآره.
    ممنون از راهنمایی که خواهی کرد.

  8. سلام دوست عزیز
    از وقتی این سایت و دیدم کلا نظرم در رابطه با c# تغییر کرده ، خیلی خیلی بهش علاقه مند شدم و اینو به خاطر زحمتای زیاد شما که در این راستا کشیدید می دونم .ممنون
    راستی منم وقتی یه فایل txt یا docx میارم کلا در richtextbox فونتش بهم میریزه.اگه راهنماییم کنید ممنون میشم.

    1. سلام دوست عزیزم،

      خوشحالم که راضی هستید؛ البته سی‌شارپ خیلی‌خیلی قدرتمندتر از این حرف‌هاست. در رابطه با سوال شما، آیا فایل اصلی شما با زبان فارسی (فونت فارسی) نوشته شده است یا متن آن انگلیسی هست؟
      موفق باشید!

  9. سلام آقای موسوی..
    سایت عالی دارید..من بار اوله که سایتتون رو دیدم و خیلی خوشم اومد..منم با اینکه دانشجوی نرم هستم ولی اطلاعاتم کمه..
    موفق باشید..

  10. با سلام
    خسته نباشید واقعا دوست عزیز
    وختی کد این صفحه رو در ریچ تکست باکس میزنم فایلهای ورد باز میشن اما خراب و داغون
    راهنمایی بکنید تشکر

  11. سلام من هم مشکل دوستان دیگه رو دارم فایل نوت پد مشکل نداره ولی ورد رو حتی اگه کاملا متن لاتین هم داشته باشه به هم ریخته نشون میده. ورد من هم ۲۰۱۰ هست. میشه راهنمایی کنید؟؟

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *