تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
EnglishToArabicNumber
#1
بسم الله الرحمن الرحيم

وصلى الله على محمد وآله الطاهرين

السلام عليكم ورحمة الله وبركاته

سنتعلم في هذا الموضوع كيفية تحويل الارقام الانكليزية الى ارقام عربية وايضا كيفية تحول الرقم الى صيغة معينة كالاسعار بالتحديد


في البدابة أنشيء مشروع جديد من نوع Class Library سواء كنت مبرمج VB او #C , سم المشروع بأسم EnNumToArNum

الان من الـ Solution Explorer غير اسم الـClass1 الى EnToAr

اولا اضف مجالات الاسماء التالية:


#C
PHP كود :
using System;
using System.Globalization;
using System.Text

VB
PHP كود :
Imports System
Imports System
.Globalization
Imports System
.Text 

ثم اضف الدالة التالية:

#C
PHP كود :
private static string Choosing(string chdouble input,IFormatProvider culture)
 
       {
 
           var output = new StringBuilder();

 
           var nums ch == "1" input.ToString(CultureInfo.InvariantCulture) : input.ToString("C"culture);

 
           foreach (var c in nums)
 
           {
 
               if (char.IsDigit(c))
 
               {
 
                   for (var 0EnDigits.Lengthi++)
 
                   {
 
                       if (!= EnDigits[i]) continue;
 
                       output.Append(ArDigits[i]);
 
                   }
 
               }
 
               else
                
{
 
                   output.Append(c);
 
               }
 
           }

 
           return output.ToString();
 
       


VB
PHP كود :
Private Shared Function Choosing(ch As Stringinput As Doubleculture As IFormatProvider) As String
            Dim output 
= New StringBuilder()

 
           Dim nums = If(ch "1"input.ToString(), input.ToString("C"culture))

 
           For Each c In nums
                If Char
.IsDigit(cThen
                    For i 
As Integer 0 To EnDigits.Length 1
                        If c 
<> EnDigits(iThen
                            Continue 
For
 
                       End If
 
                       output.Append(ArDigits(i))
 
                   Next
                Else
                    output
.Append(c)
 
               End If
 
           Next

            Return output
.ToString()

 
       End Function 

شرح الكود:

في البداية يتم تعريف متغير من الفئة StringBuilder
ثم يتم المقارنة هل المتغير ch المرسل من قبل الدالتين 1 أم 2؟
اذا 1 أي يتم تحويل الرقم الى رقم عربي بدون تغيير صيغة الرقم (يعني بدون تحويلها الى صيغة السعر)
اذا 2 أي يتم تحويل الرقم الى رقم عربي مع تغيير صيغة الرقم الى صيغة سعر طبعا في هذه الحالة المستخدم سوف يختار صيغة السعر حسب دولته كما سنرى لاحقا
والوظيفة الرئيسية لهذه الدالة هي المقارنة بين الرقم (الانكليزي) المدخل مع الرقم الانكليزي المخزون في المتغير EnDigit وبالتالي يتم جلب الرقم العربي من المتغير ArDigit عن طريق موقع الرقم الانكليزي في المتغير EnDigit

توضيح:
فرضا المدخل يحتوي على الرقم 2 لذا حسب الترتيب فان موقع الرقم 2 هي 2 لذا سيتم المقارنة بالشكل التالي

PHP كود :
Endigi[2]=='2'
output+=ArDigit[2


وأخيرا أضف دالتين بنفس الاسم بالشكل التالي:

#C
PHP كود :
public static string EnToArNumber(double input)
 
      {
 
          return Choosing("1"inputnull);
 
      }

 
       public static string EnToArNumber(double inputCultureInfo culture)
 
       {
 
           return Choosing("2"inputculture);
 
       

VB
PHP كود :
Public Shared Function EnToArNumber(input As Double) As String
            Return Choosing
("1"inputNothing)
 
       End Function

 
       Public Shared Function EnToArNumber(input As Doubleculture As CultureInfo) As String
            Return Choosing
("2"inputculture)
 
       End Function 

الى هنا وبفضل الله انتهينا من عمل ملف DLL ,الان اعمل Build للمشروع وسينتج ملف باسم EnNumToArNum.dll في مخرجات المشروع

طريقة استخدام الملف:

طبعا افتح مشروع جديد من نوع Windows Application وسمه ما شئت سواء كنت مبرمج #C او VB

ثم اضف ملف الـdll عن طريق الـSolution Explorer ثم كلك يمين على اسم المشروع ولي على اسم الSolution ومن ثم AddReference

بعد ما تضيف الملف أضفه الى الكود بالشكل التالي:

#C


PHP كود :
usingr EnNumToArNum


اما لمبرمجي VB فلا يحتاج اضافة مجال الاسماء الى الكود ,على كل حال يكون بهذه الطريقة:

VB
كود :
Imports EnNumToArNum

أما طريقة استخدام الدالة

اولا: بدون تحويل الرقم الى صيغة السعر:


#C
كود :
colotxtTotalPrice.Text = EnToAr.EnToArNumber(44556);

VB
كود :
txtTotalPrice.Text = EnToAr.EnToArNumber(112434)

ثانيا: تحويل الرقم مع تحديد صيغة السعر حسب البلد

#C
كود :
ctxtTotalPrice.Text = EnToAr.EnToArNumber(99777,newCultureInfo("AR-IQ"));

VB
كود :
txtTotalPrice.Text = EnToAr.EnToArNumber(345533, New CultureInfo("AR-IQ"))

طبعا ملاحظة اخيرة لم أضف المتغيرات العامة لان الاعدادات في المنتدى لا يقبل الارقام العربية

في انتظار ملاحظاتكم ولا تنسوني و والدي من صالح دعواتكم

ملف الـ dll في المرفقات


الملفات المرفقة
.zip   EnNumToArNum.zip (الحجم : 2.12 ك ب / التحميلات : 71)
الرد }}}}
تم الشكر بواسطة:
#2
قصدك الهندية :d

ارقامنا العربية اخذوها الانجليز ههههه


متألق بمواضيعك اخي سجاد وتأتي بالجديد دائما

وفقك الله
الرد }}}}
تم الشكر بواسطة:
#3
نعم الهنديةSmile

ههههههههه ما باليد حيلة

اخوية جربت الملف؟

جرب واعطيني خبر.
الرد }}}}
تم الشكر بواسطة:
#4
sajad كتب :نعم الهنديةSmile

ههههههههه ما باليد حيلة

اخوية جربت الملف؟

جرب وقل واعطيني خبر.

نعم جربته ونجح :d

PHP كود :
double enNumber Convert.ToDouble("1.45356");
            
MessageBox.Show(EnNumToArNum.EnToAr.EnToArNumber(enNumber)); //١.٤٥٣٥٦ 

ماشاء الله عليك
الرد }}}}
تم الشكر بواسطة:
#5
الحمد لله شكرا لك اخي العزيز
الرد }}}}
تم الشكر بواسطة:
#6
Sajad كتب :نعم الهنديةSmile

ههههههههه ما باليد حيلة

اخوية جربت الملف؟

جرب واعطيني خبر.

شكرا لردك أخي الكريم
أولا أنا محتار كيف يسمي الإخوة الأكارم أرقامنا العربية بالأرقام الإنجليزية ويسمون الأرقام الهندية بالأرقام العربية
اعلموا أيها الأفاضل أن الغرب ليس له أرقام وأكرر الغرب كله ليس له أرقام فهم يستعملون الأرقام العربية
أما إخوتنا في المشرق العربي فهم يستعملون الأرقام الهندية ويعتقدون أنها ارقام عربية
إن الحضارة العربية الاسلامية هي أساس الحضارة الغربية ولولا أرقامنا ما كانوا ليصلوا إلى ما وصلوا إليه
لكننا أصبحا الآن أمة جاهلة تتناحر على الكراسي والملك وتركت التقدم والرقي
وانظروا ما يحدث حاليا: صراعات دموية وتحطيم لكل مكتسبات الأمة بدعوى الجهاد ههههه
تركوا اسرائيل تعبث في فلسطين والحكام على كراسيهم منكبين وجهاد في قتل المسلمين في كل بقاع العالم ، هل هذا جهاد؟
إن الله حرم قتل المسلم وحرم قتل النفس البشرية عامة إلا بالحق
فكيف بالجماعات التكفيرية تعث فسادا في الأرض، هل فعلا ما يقومون به جهاد؟
إن معظم هؤلاء القوم جهلة ولا يحسنون أن شيء ونتيجة لحقدهم الشديد على أمة محمد ضلى الله عليه وسلم ، وتناسهم أن المسلم دمه وعرضه وماله حرام ، فنطقه بالشهادة تعصمه من القتل، فما بال هؤلاء الجهلة المأجورين يقتلون أبناء دينهم وأبناء جلدتهم بغير حق؟
الرد }}}}
تم الشكر بواسطة:


التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم