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

تحويل الأرقام إلى كلمات "تفقيط"

مغلق
بدأه إسماعيل الحلو في 16 أغسطس 2006 · 1 رد · 2,602 مشاهدة · في Microsoft Visual C#.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

هذه الدالة تختص بعملية التفقيط لمن يحتاجها حيث يمكنه تحويل رقم مكون من 9999999.99

  



  private string Tafgeet(Double Amount,string Curr,string SubCurr)
  {
   string Value=Math.Floor(Amount).ToString ();
   string NewValue=null;
   string[] Part1 =new string[10] {"","إحدي ","اثنا","ثلاث","أربعة","خمسة","ستة","سبعة","ثمانية","تسعة"};
   string[] Part2 =new string[10] {"","عشر","عشرون","ثلاثون","أربعون","خمسون","ستون","سبعون","ثمانون","تسعون"};
   string[] Part3 =new string[10] {"","مئة","مئان","ثلاث مائة","أربع مائة","خمس مائة","ست مائة","سبع مائة","ثمان مائة","تسع مائة"};
   string[] Part4 =new string[10] {"","ألف","ألفان","ثلاثة آلاف","أربع آلاف","خمسة آلاف","ستة آلاف","سبع آلاف","ثمانية آلاف","تسعة آلاف"};

   //---------------------------< ....... الملاييييييييييييين ........ >
   if(Value.Length==7)
   {
	if(Value.Substring (0,1)=="1")
	 NewValue="مليون ";
	else if(Value.Substring (0,1)=="2")
	 NewValue="مليونان ";
	else
	 NewValue = Part1[int.Parse(Value.Substring (0,1))] + " ملايين"; 

	Value=Value.Substring(1,Value.Length-1); 
   }
   //------------------------------------< ....... مئات الألوف....... >
   if(Value.Length==6)
   {
	NewValue += " " + Part3[int.Parse(Value.Substring (0,1))] + " و"; 
	Value=Value.Substring(1,Value.Length-1); 
   }
   //----------------------------------
   if(Value.Length==5)
   {
	NewValue += " " + Part1[int.Parse(Value.Substring (1,1))]; 
	NewValue += " و" + Part2[int.Parse(Value.Substring (0,1))] + " ألفا و"; 
	Value=Value.Substring(1,Value.Length-1);
	Value=Value.Substring(1,Value.Length-1);
   }
   //---------------------------------
   if(Value.Length==4)
   {
	NewValue += " " + Part4[int.Parse(Value.Substring (0,1))]; 
	Value=Value.Substring(1,Value.Length-1);
   }
   if(Value.Length==3)
   {
	NewValue += " " +Part3[int.Parse(Value.Substring (0,1))] + " و"; 
	Value=Value.Substring(1,Value.Length-1); 
   }
   //-----------------------------------
   if(Value.Length>=1 && Value.Length<=2)
   {
	NewValue +=  Part1[int.Parse(Value.Substring (1,1))]; 
	NewValue += " " + Part2[int.Parse(Value.Substring (0,1))]; 
	Value=Value.Substring(1,Value.Length-1);
	Value=Value.Substring(1,Value.Length-1);
   }
   NewValue += " " + Curr;
   //الكسر العشري
   string Real = Amount.ToString ("");
   int Pos = Real.IndexOf('.',0,Real.Length);
   if (Pos !=-1)
   {
	Pos ++;
	try
	{
	 string NewReal = (float.Parse (Real.Substring (Pos,Real.Length - Pos))).ToString ();
	 if(NewReal.Length==1)
	  NewValue += " و " + Part1[int.Parse(NewReal.Substring (0,1))];
	 else
	 {
	  NewValue += " و " + Part1[int.Parse(NewReal.Substring (1,1))]; 
	  NewValue += " و " + Part2[int.Parse(NewReal.Substring (0,1))]; 
	 }
	 NewValue += " " + SubCurr;
	}
	catch {}
   }
   return NewValue;
  }




الاستدعاء
this.label1.Text = Tafgeet(Double.Parse (this.textBox1.Text),"دولار","سنت");

يا أيها الناس قولو لا إله إلا الله تفلحوا وتملكوا بها العرب وتذل لكم العجم وإذا آمنتم كنتم ملوكا في الجنة

#2

مشكور اخي إسماعيل الحلو على هذا المجهود الرائع.

هذا الموضوع مغلق.

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