فروردین
۱۰
۱۳۹۳

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

سلام

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

برای اینکار بهترین روشی که به ذهنم رسید ساخت یک Library و استفاده از آن در یک زبان دیگر بود.

چون به نظرم کاربرد سیستم عامل ویندوز و همینطور دات نت بیشتر از بقیه است کتابخانه DLL و برای زبان برنامه نویسی زبان سی شارپ تحت دات نت را به عنوان مثال انتخاب نمودم. ولی شما میتوانید خودتان این تبدیل را به هر Library دلخواه (مثلا .a تحت لینوکس) و استفاده از آن را با هر زبان دیگر انجام دهید.

برای ارتباط بین Library ساخته شده و زبان سطح بالای مورد نظر به یک پروتکل ساده نیاز داریم. برای این منظور تغییراتی را در برنامه اعمال کردم. به این ترتیب که از این پس در Library به جای چاپ حروف فینگلیش کدی در یک بافر ذخیره میکنیم. زبان سطح بالا با خواندن این بافر متوجه نتیجه خروجی خواهد شد و متن مورد نظر خود را به صورت دلخواه نشان خواهد داد. برای جداسازی کدها هم از کاراکتر کاما استفاده نمودم.

 کد مربوط به نمادهای فارسی اعداد به صورت زیر میباشد:

 

برای نامگذاری اعداد بزرگ از این مرجع استفاده نمودم. اگر میخواهید مرجع خود را تغییر دهید یا به اعداد بزرگتری نیاز دارید (!!) میتوانید جداول بالا را که در فایل fingilishIndexes.h است و همچنین آرایه معادل با آن را در برنامه سی شارپ که با نام constantNumbersStrings ذخیره شده است را مطابق میل خود تغییر داده و دوباره کامپایل کنید.

کد تغییر یافته پست قبلی (کد DLL) مورد نظر به صورت زیر میباشد:

 

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

برای روشن تر شدن بهتر موضوع روال زیر را در نظر بگیرید:

  • در زبان سطح بالا کاربر مقدار ۱۲۳ را وارد میکند.
  • برنامه این مقدار را به صورت رشته به متد convertToPersianSentence موجود در Library ارسال میکند.
  • Library کد خروجی را تولید کرده و در پارامتر خروجی (out) ذخیره میکند.
  • برنامه سطح بالا مقدار خروجی را که برای مثال بالا مقدار “۲۸,۶۱,۲۰,۶۱,۳” است خوانده و با استفاده متد createFarsiFromCodes کد را به متن فارسی معادل آن تبدیل میکند.

در رشته بالا

۲۸ معادل “صد”

۶۱ معادل جدا کننده یا همان کاراکتر “و”

۲۰ معادل “بیست”

و ۳ معادل “سه” میباشد.

 

 

دانلود کامل پروژه DLL در محیط Visual Studio 2008

دانلود کامل پروژه سی شارپ در محیط Visual Studio 2008

 

تصاویری از اجرای برنامه برای چند عدد نمونه:

 

2014-03-30_153117

 

2014-03-30_153255

 

2014-03-30_153550

 

و در آخر چاپ عدد معروف گوگل 🙂

2014-03-30_154541

 

به امید دیدار مجدد.


نوشته‌های مرتبط

درباره نویسنده

برنامه‌نویس ++‏C/C‏ - برنامه‌نویس سیستم‌های گرافیکی با استفاده از کتابخانه ‏OpenGL - برنامه‌نویس #‏C و ..‏



۲ دیدگاه افزودن دیدگاه +

  • شما توی این برنامه کلمات فارسی کهنوشتین رو خودتون تعریف کردین براش دیگه؟

    • نه، همونطور که گفتم کلمات فارسی مرجعشون این لینک میباشد.

فرستادن دیدگاه

*