Forum PersianCoder

زمان کنونی: ۱/۳/۱۳۹۱, ۰۳:۳۳ صبح درود کاربر مهمان (ورودثبت نام)




ارسال پاسخ 
 
امتیاز موضوع:
  • 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
پروژه ديكشنري و لايتنر باكس Dictionary & Leitner Box  
نویسنده پیام
ahmadsystemco آفلاین
کاربر تازه وارد

ارسال ها: 3
تاریخ عضویت: شهر ۱۳۸۹
اعتبار: 0
سپاس ها 0
سپاس شده 3 بار در 2 ارسال
ارسال: #1
پروژه ديكشنري و لايتنر باكس Dictionary & Leitner Box
سلام خدمت تمامي اساتيد و دوستان عزيز

شروع داستان
داستان از آنجايي شروع مي شود كه من يك روز هنگام كار كردن با كامپيوتر متوجه اين شدم كه اگه بتوانم برنامه اي بنويسم كه لغات انگليسي و معني آن را برايم نمايش دهد و معني ها را به من ياد آور شود خيلي كار مفيدي كرده ام چون 6 ماه ديگر كنكور اشتم و لغات زبان انگليسي فرار است و من كه عاشق كامپيوتر و برنامه نويسي هستم و هميشه پاي كامپيوترم با اينكار (شايد) پيشرفت خواهم كرد. روزها گذشت و من اين كار را انجام ندادم تا اينكه...

داستان گويي بس است.

شرح نرم افزار:

اين نرم افزار يك ديكشنري x to x است كه قابليت اين را دارد كه زماني (مثلا 300 ثانيه معادل 5 دقيقه) براي تعريف شود و برنامه بعد از طي آن زمان يك لغت تصادفي از ديتابيس خود انتخاب كرده و آن را در پايين سمت راست صفحه نمايش در قسمتTray به نمايش در آورد (لايتنر بوكس)

ديتابيس نرم افزار يك فايل متني ساده با Encoding UTF-8 مي باشد تا زبان فارسي را پشتيباني كند. لغات در ديتابيس به صورت زير در يك خط مجزا تعريف مي شوند
کد:

کد:
Hello^@^سلام


در برنامه اصلي يك كلاس به نام ADictionary براي ديكشنري تعريف شده كه عمليات خواندن اطلاعات ديتابيس ، جست و جو لغات ، اضافه كردن لغت و برگرداندن يك لغت تصادفي را انجام مي دهد. بارگذاري ديتابيس به اين صورت است كه يك StreamReader فايل متني را خط به خط خوانده و در هر خط لغت ومعني را پيدا كرده و در دو ليست قرار مي دهد كه اين دو ليست عبارتند از:
dicwords براي ذخيره لغات
dicmeanings براي ذخيره معني ها در حافظه رم
در هر خط ديتابيس بين لغت و معني يك ^@^ وجود دارد كه اين را خودم انتخاب كردم و براي تشخيص لغات راه ساده تري نيافتم. جدا كردن لغت و معني را با دستور SubString انجام دادم زيرا به گفته خود MSDN فضاي كمتري از رم را اشغال كرده و براي نرم افزارهاي با عملكرد بهتر اين دستور بهتر از Split مي باشد چون ...
اگر ADictionary در حال خواندن ديتابيس به دو لغت يكسان رسيد معني لغت هاي بعد از اولي را با جدا كردن بوسيله خط و گذاشتن ====== معني جديد را به معني قبلي اضافه كرده.

در فرم اصلي ويندوز يك ليست باكس براي نمايش لغات و دو تكتس باكس اولي براي جست و جو لغت و دومي براي نمايش معني قرار داده شده است.

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

راستي تا يادم نرفته بكم:
چون ديدم بسياري از ديتابيس ها بصورت فايل اكسس است يك تبديل كننده فايل اكسس به ديتابيس مخصوص نرم افزار نير ساختم كه اگر چه كار بيهوده ايست ولي در ساختن آن مxلب Async را ياد گرفتم.

همچنين از استاد عزيز جناب مسعود طباطبايي به خاطر آموزش تصويري Async و BackgrounWorker تشكر مي كنم.

فايل سورس نرم افزار و ديتابيس 50000 لغتي را براي دوستان قرار مي دهم.

فایل پروژه
فایل دیتابیس

منتظر پيشنهادات ، انتقادات عزيزان هستم
۷/۶/۱۳۸۹ ۱۰:۱۱ صبح
مشاهده وب سایت کاربر یافتن تمامی ارسال های این کاربر نقل قول این ارسال در یک پاسخ
 سپاس شده توسط Rasoul
ارسال پاسخ 


پرش به انجمن:

Powered by MyBB | Copyright © 2010 MyBB Group
Element Blue by MyBB Mod