الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

كلاس :- تحويل الأرقام الي نصوص و حروف عربية

بدأه ameral في 22 أغسطس 2012 · 1 رد · 1,289 مشاهدة · في ASP.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

بسم الله الرحمن الرحيم

والصلاة والسلام علي اشرف المرسلين

*ملاحظة * يمكن استخدامة في تطبيقات الويب و الويندوز معا .

كثيرا ما نر هذه الأشياء في الوصولات البنكية و المعاملات الجامعية وتعتبر مهمة جداّ

حيث تقوم مثلا بتحويل الرقم 531 الي النص التالي خمسمائة و واحد وثلاثون فقط

في البداية الكلاس

using System;



namespace Number_to_Text
{

    /// <summary>

    /// Summary description for Class1.

    /// </summary>

    public class Number_to_Arabic_Text
    {


        public Number_to_Arabic_Text()
        {

            //

            // TODO: Add constructor logic here

            //

        }

        private static string GetAla7ad(Int64 Num_Under2)
        {

            string F1;

            switch (Num_Under2)
            {

                case 1: F1 = "واحد";

                    break;

                case 2: F1 = "أثنان ";

                    break;

                case 3: F1 = "ثلاثة";

                    break;

                case 4: F1 = "أربعة";

                    break;

                case 5: F1 = "خمسة";

                    break;

                case 6: F1 = "ستة";

                    break;

                case 7: F1 = "سبعة";

                    break;

                case 8: F1 = "ثمانية";

                    break;

                case 9: F1 = "تسعة";

                    break;

                default: F1 = "صفر";

                    break;

            }

            return F1;

        }

        private static string GetAl3asharat(int Num2)
        {

            string F2;

            switch (Num2)
            {

                case 1: F2 = "عشرة";

                    break;

                case 2: F2 = "عشرون ";

                    break;

                case 3: F2 = "ثلاثون";

                    break;

                case 4: F2 = "أربعون";

                    break;

                case 5: F2 = "خمسون";

                    break;

                case 6: F2 = "ستون";

                    break;

                case 7: F2 = "سبعون";

                    break;

                case 8: F2 = "ثمانون";

                    break;

                case 9: F2 = "تسعون";

                    break;

                default: F2 = "صفر";

                    break;

            }



            return F2;



        }

        private static string GetAlmeaat(int Num3)
        {

            string F3;

            switch (Num3)
            {

                case 1: F3 = "مائة";

                    break;

                case 2: F3 = "مائتان ";

                    break;

                case 3: F3 = "ثلاثة مائة";

                    break;

                case 4: F3 = "أربعة مائة";

                    break;

                case 5: F3 = "خمسة مائة";

                    break;

                case 6: F3 = "ستة مائة";

                    break;

                case 7: F3 = "سبعة مائة";

                    break;

                case 8: F3 = "ثمان مائة";

                    break;

                case 9: F3 = "تسعة مائة";

                    break;

                default: F3 = "صفر";

                    break;

            }

            return F3;

        }

        private static string GetAloloof(int Num4)
        {

            string F4;

            switch (Num4)
            {

                case 1: F4 = "ألف";

                    break;

                case 2: F4 = "ألفان";

                    break;

                case 3: F4 = "ثلاثةألاف";

                    break;

                case 4: F4 = "أربعةألاف";

                    break;

                case 5: F4 = "خمسةألاف";

                    break;

                case 6: F4 = "ستةألاف";

                    break;

                case 7: F4 = "سبعةألاف";

                    break;

                case 8: F4 = "ثمانيةألاف";

                    break;

                case 9: F4 = "تسعةألاف";

                    break;

                default: F4 = "صفر";

                    break;

            }



            return F4;

        }

        private static string Get3Digits(string Num)
        {

            string ReturnValue;



            string F1, F2, F3;

            int Num_Under3, Num3, Num2, Num_Under2;



            F1 = "";

            F2 = "";

            F3 = "";

            if (Num.ToString() == "")
            {

                Num = "0";

            }

            int number = int.Parse(Num.ToString());

            if (number >= 0)
            {

                Num3 = number / 100;

                Num_Under3 = number % 100;

                Num2 = (int)Num_Under3 / 10;

                Num_Under2 = Num_Under3 % 10;



                // Get Ala7ad

                F1 = GetAla7ad(Num_Under2);

                // Get Al3asharat

                F2 = GetAl3asharat(Num2);

                if (Num2 != 0)
                {

                    if ((Num2 == 1) && (Num_Under2 != 0))
                    {

                        F1 = F1 + F2;

                    }

                    else
                    {

                        if ((Num_Under2 != 0) && (Num2 != 0))
                        {

                            F1 = F1 + " و " + F2;

                        }

                        else if (Num2 != 0)
                        {

                            F1 = F2;

                        }

                    }

                }

                // Get Almeaat

                F3 = GetAlmeaat(Num3);

                if ((Num3 > 0) && (F1 != "صفر"))
                {

                    F1 = F3 + " و " + F1;

                }

                if ((Num3 != 0) && (Num2 == 0) && (Num_Under2 == 0))
                {

                    F1 = F3;

                }

            }

            ReturnValue = F1;

            return ReturnValue;

        }

        private static string Get4Digits(string Num)
        {

            string ReturnValue;



            string F1, F2, F3, F4;

            int Num_Under4, Num4, Num_Under3, Num3, Num2, Num_Under2;



            F1 = "";

            F2 = "";

            F3 = "";

            F4 = "";

            if (Num.ToString() == "")
            {

                Num = "0";

            }

            int number = int.Parse(Num.ToString());

            if (number >= 0)
            {

                Num4 = number / 1000;

                Num_Under4 = number % 1000;

                Num3 = Num_Under4 / 100;

                Num_Under3 = number % 100;

                Num2 = (int)Num_Under3 / 10;

                Num_Under2 = Num_Under3 % 10;



                // Get Ala7ad

                F1 = GetAla7ad(Num_Under2);

                // Get Al3asharat

                F2 = GetAl3asharat(Num2);

                if (Num2 != 0)
                {

                    if ((Num2 == 1) && (Num_Under2 != 0))
                    {

                        F1 = F1 + F2;

                    }

                    else
                    {

                        if ((Num_Under2 != 0) && (Num2 != 0))
                        {

                            F1 = F1 + " و " + F2;

                        }

                        else if (Num2 != 0)
                        {

                            F1 = F2;

                        }

                    }

                }

                // Get Almeaat

                F3 = GetAlmeaat(Num3);

                if ((Num3 > 0) && (F1 != "صفر"))
                {

                    F1 = F3 + " و " + F1;

                }

                if ((Num3 != 0) && (Num2 == 0) && (Num_Under2 == 0))
                {

                    F1 = F3;

                }

                // Get Aloloof

                if (Num4 > 0)
                {

                    F4 = GetAloloof(Num4);

                    if (F1 != "صفر")
                    {

                        F1 = F4 + " و " + F1;

                    }

                    else
                    {

                        F1 = F4;

                    }

                }

            }

            ReturnValue = F1;

            return ReturnValue;

        }



        private static void Cal3Digits(string strType, ref string strNnumber, ref string ReturnValue)
        {

            string Value;

            if (strNnumber.Length > 0)
            {

                if (strNnumber.Length < 3)
                {

                    strNnumber = "000" + strNnumber;

                    strNnumber = strNnumber.Substring(strNnumber.Length - 3, 3);

                }

                Value = Get3Digits(strNnumber.Substring(strNnumber.Length - 3, 3));

                if (Value != "صفر")
                {

                    Value = Value + strType;

                }

                else
                {

                    Value = "";

                }

                if (ReturnValue != "صفر")
                {

                    if (Value != "")
                    {

                        if (ReturnValue != "")
                        {

                            ReturnValue = Value + " و " + ReturnValue;

                        }

                        else
                        {

                            ReturnValue = Value;

                        }

                    }

                }

                else
                {

                    ReturnValue = Value;

                }

                strNnumber = strNnumber.Substring(0, strNnumber.Length - 3);

            }



        }

        private static string Convert(string strNnumber)
        {

            string ReturnValue, strThousand, strMillion, strMilyar, strBillion

                 , strThousandBillion, strMillionBillion, strMilyarBillion, strBillionBillion;

            strThousand = " ألف ";

            strMillion = " مليون ";

            strMilyar = " مليار ";

            strBillion = " بليون ";

            strThousandBillion = " ألف بليون ";

            strMillionBillion = " مليون بليون ";

            strMilyarBillion = " مليار بليون ";

            strBillionBillion = " بليون بليون ";



            ReturnValue = "";



            if (strNnumber.ToString() == "")
            {

                strNnumber = "0";

            }



            if (strNnumber.Length < 3)
            {

                strNnumber = "000" + strNnumber;

                strNnumber = strNnumber.Substring(strNnumber.Length - 3, 3);

            }

            if (strNnumber.Length == 4)
            {

                ReturnValue = Get4Digits(strNnumber);

            }

            else
            {

                ReturnValue = Get3Digits(strNnumber.Substring(strNnumber.Length - 3, 3));

                strNnumber = strNnumber.Substring(0, strNnumber.Length - 3);



                Cal3Digits(strThousand, ref strNnumber, ref ReturnValue);

                Cal3Digits(strMillion, ref strNnumber, ref ReturnValue);

                Cal3Digits(strMilyar, ref strNnumber, ref ReturnValue);

                Cal3Digits(strBillion, ref strNnumber, ref ReturnValue);

                Cal3Digits(strThousandBillion, ref strNnumber, ref ReturnValue);

                Cal3Digits(strMillionBillion, ref strNnumber, ref ReturnValue);

                Cal3Digits(strMilyarBillion, ref strNnumber, ref ReturnValue);

                Cal3Digits(strBillionBillion, ref strNnumber, ref ReturnValue);

            }

            return ReturnValue;

        }



        public static string ameral(string strNnumber)
        {

            double Number;

            Int64 BeforePoint, AfterPoint;

            string ReturnValue, strBeforePoint;

            int intIndex;

            ReturnValue = "";

            try
            {

                Number = double.Parse(strNnumber);

                BeforePoint = (Int64)Number;

                strBeforePoint = BeforePoint.ToString();

                intIndex = strNnumber.Length - strBeforePoint.Length;

                if (strNnumber.Length > strBeforePoint.Length)
                {

                    AfterPoint = Int64.Parse(strNnumber.Substring(strNnumber.Length - intIndex + 1, intIndex - 1));

                }

                else
                {

                    AfterPoint = 0;

                }

                if (BeforePoint > 0)
                {

                    ReturnValue = Convert(BeforePoint.ToString());

                }

                if (AfterPoint != 0)
                {

                    if (ReturnValue != "")
                    {

                        ReturnValue = ReturnValue + " - " + " و " + Convert(AfterPoint.ToString()) + " من " + Convert(((int)(Math.Pow(10, intIndex - 1))).ToString());

                    }

                    else
                    {

                        ReturnValue = Convert(AfterPoint.ToString()) + " من " + Convert(((int)(Math.Pow(10, intIndex - 1))).ToString());

                    }

                }

            }

            catch (Exception)
            {

                strNnumber = "0";

                ReturnValue = Convert(strNnumber);

            }

            return ReturnValue;

        }



    }

}

استدعاء واستخدام الكلاس

textBox2.Text = "فقط " + Number_to_Text.Number_to_Arabic_Text.ameral(textBox1.Text) + " دينار";

و شكرا وارجو الرد للإستمرار

تم تعديل هذه المشاركة بواسطة ameral في 22 أغسطس 2012 في 17:07

2
#2

شكراً جزيلا اخي الكريم ، اكواد مهمة بالفعل لأي تطبيق

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…