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

[تنبيه - استخدم البحث :]دالة للتفقيط

بدأه sharks في 27 مايو 2009 · 8 رد · 776 مشاهدة · في Microsoft Visual C#.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

اريد كود للتفقيط بمعنى اخر اريد كود لتحويل العملات الى نصوص مثال 55دولار تكون خمسة وخمسون دولار

انا بحثت كثيرا ووجدت اكواد كثيرة زلكنها بها عيوب اريد داله مضمونة

جزاكم الله خيرا

#2

السلام عليكم

هذا كلاس يوجد به دالة للتفقيط و انا استخدمها

#region WordMoney

		/// <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 NtoS(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;

			}



		}

		public class NumberToEnglish
		{
			private static string[] onesMapping =
				new string[] {
					"Zero", "One", "Two", "Three", "Four", "Five", "Six", "Seven", "Eight", "Nine",
					"Ten", "Eleven", "Twelve", "Thirteen", "Fourteen", "Fifteen", "Sixteen", "Seventeen", "Eighteen", "Nineteen"
				};

			private static string[] tensMapping =
				new string[] {
					"Twenty", "Thirty", "Fourty", "Fifty", "Sixty", "Seventy", "Eighty", "Ninety"
				};

			private static string[] groupMapping =
				new string[] {
					"Hundred", "Thousand", "Million", "Billion", "Trillion", "Quadrillion", "Quintillion", "Sextillian",
					"Septillion", "Octillion", "Nonillion", "Decillion", "Undecillion", "Duodecillion", "Tredecillion",
					"Quattuordecillion", "Quindecillion", "Sexdecillion", "Septendecillion", "Octodecillion", "Novemdecillion",
					"Vigintillion", "Unvigintillion", "Duovigintillion", "10^72", "10^75", "10^78", "10^81", "10^84", "10^87",
					"Vigintinonillion", "10^93", "10^96", "Duotrigintillion", "Trestrigintillion"
				};

			public static string EnglishFromNumber(decimal number)
			{
				string sign = null;
				if (number < 0)
				{
					sign = "Negative";
					number = Math.Abs(number);
				}

				int decimalDigits = 0;
				while (number - Math.Floor(number) > 0)
				{
					number *= 10;
					decimalDigits++;
				}

				Console.WriteLine("Total Decimal Digits: {0}", decimalDigits);

				string decimalString = null;
				while (decimalDigits-- > 0)
				{
					int digit = (int)(number % 10); number /= 10;
					decimalString = onesMapping[digit] + " " + decimalString;
				}

				string retVal = null;
				int group = 0;
				if (number < 1)
				{
					retVal = onesMapping[0];
				}
				else
				{
					while (number >= 1)
					{
						int numberToProcess = (int)(number % 1000);
						number = number / 1000;

						string groupDescription = ProcessGroup(numberToProcess);
						if (groupDescription != null)
						{
							if (group > 0)
							{
								retVal = groupMapping[group] + " " + retVal;
							}
							retVal = groupDescription + " " + retVal;
						}

						group++;
					}
				}

				return String.Format("{0}{4}{1}{3}{2}",
					sign,
					retVal,
					decimalString,
					(decimalString != null) ? " Point " : "",
					(sign != null) ? " " : "");
			}

			private static string ProcessGroup(int number)
			{
				int tens = number % 100;
				int hundreds = number / 100;

				string retVal = null;
				if (hundreds > 0)
				{
					retVal = onesMapping[hundreds] + " " + groupMapping[0];
				}
				if (tens > 0)
				{
					if (tens < 20)
					{
						retVal += ((retVal != null) ? " " : "") + onesMapping[tens];
					}
					else
					{
						int ones = tens % 10;
						tens = (tens / 10) - 2; // 20's offset

						retVal += ((retVal != null) ? " " : "") + tensMapping[tens];

						if (ones > 0)
						{
							retVal += ((retVal != null) ? " " : "") + onesMapping[ones];
						}
					}
				}

				return retVal;
			}
		}

		#endregion

و هذا ماف يوجد به مثال

MoneyToWord.rar

و الله في عون العبد ما دام العبد في عون أخيه

#3

لكم جزيل الشكر

ولكن هل هل يوجد في هذه الدالة العملات انا لاحظت ان الدالة تكتب النصوص سليمة ولكنها بدون رمز الجنيه او القرش

#4

يمكنك ان تضيفها نتا بكل سهولة

و ذلك ان تضيف للنص العمل التي تريدها

مثال :

الف و مئتان " درهم"

و الله في عون العبد ما دام العبد في عون أخيه

#6

انتهيت من تظبيط الكود لكي يكون بالعملة وهذا هو التعديل للافادة

 using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

/// <summary>
/// Summary description for ConvertToWord
/// </summary>
public class ConvertToWord
{
	#region WordMoney

	/// <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 NtoS(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()) + " قرش ";

					}

					else
					{

						ReturnValue = Convert(AfterPoint.ToString()) + " قرش ";

					}

				}

			}

			catch (Exception)
			{

				strNnumber = "0";

				ReturnValue = Convert(strNnumber);

			}

			return ReturnValue;

		}



	}

	public class NumberToEnglish
	{
		private static string[] onesMapping =
			new string[] {
					"Zero", "One", "Two", "Three", "Four", "Five", "Six", "Seven", "Eight", "Nine",
					"Ten", "Eleven", "Twelve", "Thirteen", "Fourteen", "Fifteen", "Sixteen", "Seventeen", "Eighteen", "Nineteen"
				};

		private static string[] tensMapping =
			new string[] {
					"Twenty", "Thirty", "Fourty", "Fifty", "Sixty", "Seventy", "Eighty", "Ninety"
				};

		private static string[] groupMapping =
			new string[] {
					"Hundred", "Thousand", "Million", "Billion", "Trillion", "Quadrillion", "Quintillion", "Sextillian",
					"Septillion", "Octillion", "Nonillion", "Decillion", "Undecillion", "Duodecillion", "Tredecillion",
					"Quattuordecillion", "Quindecillion", "Sexdecillion", "Septendecillion", "Octodecillion", "Novemdecillion",
					"Vigintillion", "Unvigintillion", "Duovigintillion", "10^72", "10^75", "10^78", "10^81", "10^84", "10^87",
					"Vigintinonillion", "10^93", "10^96", "Duotrigintillion", "Trestrigintillion"
				};

		public static string EnglishFromNumber(decimal number)
		{
			string sign = null;
			if (number < 0)
			{
				sign = "Negative";
				number = Math.Abs(number);
			}

			int decimalDigits = 0;
			while (number - Math.Floor(number) > 0)
			{
				number *= 10;
				decimalDigits++;
			}

			Console.WriteLine("Total Decimal Digits: {0}", decimalDigits);

			string decimalString = null;
			while (decimalDigits-- > 0)
			{
				int digit = (int)(number % 10); number /= 10;
				decimalString = onesMapping[digit] + " " + decimalString;
			}

			string retVal = null;
			int group = 0;
			if (number < 1)
			{
				retVal = onesMapping[0];
			}
			else
			{
				while (number >= 1)
				{
					int numberToProcess = (int)(number % 1000);
					number = number / 1000;

					string groupDescription = ProcessGroup(numberToProcess);
					if (groupDescription != null)
					{
						if (group > 0)
						{
							retVal = groupMapping[group] + " " + retVal;
						}
						retVal = groupDescription + " " + retVal;
					}

					group++;
				}
			}

			return String.Format("{0}{4}{1}{3}{2}",
				sign,
				retVal,
				decimalString,
				(decimalString != null) ? " Point " : "",
				(sign != null) ? " " : "");
		}

		private static string ProcessGroup(int number)
		{
			int tens = number % 100;
			int hundreds = number / 100;

			string retVal = null;
			if (hundreds > 0)
			{
				retVal = onesMapping[hundreds] + " " + groupMapping[0];
			}
			if (tens > 0)
			{
				if (tens < 20)
				{
					retVal += ((retVal != null) ? " " : "") + onesMapping[tens];
				}
				else
				{
					int ones = tens % 10;
					tens = (tens / 10) - 2; // 20's offset

					retVal += ((retVal != null) ? " " : "") + tensMapping[tens];

					if (ones > 0)
					{
						retVal += ((retVal != null) ? " " : "") + onesMapping[ones];
					}
				}
			}

			return retVal;
		}
	}

	#endregion
}
#7

عزرا الكود السابق به خطا هذا هو الكود الصحيح

 public class ConvertToWord
{
	#region WordMoney

	/// <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 NtoS(string strNnumber)
		{
			string[] valueb = new string[strNnumber.Split('.').Length];
			valueb = strNnumber.Split('.');
			if (valueb.Length > 1)
			{
				if (valueb[1].ToString() == "" || int.Parse(valueb[1].ToString()) == 0)
				{
					strNnumber = valueb[0].ToString();
				}
				if (valueb[0].ToString() == "" || int.Parse(valueb[0].ToString()) == 0)
				{
					strNnumber = "0." + valueb[1].ToString();
				}
			}
			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()) + " قرش ";

					}

					else
					{

						ReturnValue = Convert(AfterPoint.ToString()) + " قرش ";

					}

				}

			}

			catch (Exception)
			{

				strNnumber = "0";

				ReturnValue = Convert(strNnumber);

			}
			if (strNnumber.Contains(".") == false)
			{
			  ReturnValue= ReturnValue + " جنية";
			}
			if (strNnumber.Contains("جنية") == false)
			{  
				//ReturnValue= ReturnValue + " جنية";
			}
			return ReturnValue;

		}



	}

	public class NumberToEnglish
	{
		private static string[] onesMapping =
			new string[] {
					"Zero", "One", "Two", "Three", "Four", "Five", "Six", "Seven", "Eight", "Nine",
					"Ten", "Eleven", "Twelve", "Thirteen", "Fourteen", "Fifteen", "Sixteen", "Seventeen", "Eighteen", "Nineteen"
				};

		private static string[] tensMapping =
			new string[] {
					"Twenty", "Thirty", "Fourty", "Fifty", "Sixty", "Seventy", "Eighty", "Ninety"
				};

		private static string[] groupMapping =
			new string[] {
					"Hundred", "Thousand", "Million", "Billion", "Trillion", "Quadrillion", "Quintillion", "Sextillian",
					"Septillion", "Octillion", "Nonillion", "Decillion", "Undecillion", "Duodecillion", "Tredecillion",
					"Quattuordecillion", "Quindecillion", "Sexdecillion", "Septendecillion", "Octodecillion", "Novemdecillion",
					"Vigintillion", "Unvigintillion", "Duovigintillion", "10^72", "10^75", "10^78", "10^81", "10^84", "10^87",
					"Vigintinonillion", "10^93", "10^96", "Duotrigintillion", "Trestrigintillion"
				};

		public static string EnglishFromNumber(decimal number)
		{
			string sign = null;
			if (number < 0)
			{
				sign = "Negative";
				number = Math.Abs(number);
			}

			int decimalDigits = 0;
			while (number - Math.Floor(number) > 0)
			{
				number *= 10;
				decimalDigits++;
			}

			Console.WriteLine("Total Decimal Digits: {0}", decimalDigits);

			string decimalString = null;
			while (decimalDigits-- > 0)
			{
				int digit = (int)(number % 10); number /= 10;
				decimalString = onesMapping[digit] + " " + decimalString;
			}

			string retVal = null;
			int group = 0;
			if (number < 1)
			{
				retVal = onesMapping[0];
			}
			else
			{
				while (number >= 1)
				{
					int numberToProcess = (int)(number % 1000);
					number = number / 1000;

					string groupDescription = ProcessGroup(numberToProcess);
					if (groupDescription != null)
					{
						if (group > 0)
						{
							retVal = groupMapping[group] + " " + retVal;
						}
						retVal = groupDescription + " " + retVal;
					}

					group++;
				}
			}

			return String.Format("{0}{4}{1}{3}{2}",
				sign,
				retVal,
				decimalString,
				(decimalString != null) ? " Point " : "",
				(sign != null) ? " " : "");
		}

		private static string ProcessGroup(int number)
		{
			int tens = number % 100;
			int hundreds = number / 100;

			string retVal = null;
			if (hundreds > 0)
			{
				retVal = onesMapping[hundreds] + " " + groupMapping[0];
			}
			if (tens > 0)
			{
				if (tens < 20)
				{
					retVal += ((retVal != null) ? " " : "") + onesMapping[tens];
				}
				else
				{
					int ones = tens % 10;
					tens = (tens / 10) - 2; // 20's offset

					retVal += ((retVal != null) ? " " : "") + tensMapping[tens];

					if (ones > 0)
					{
						retVal += ((retVal != null) ? " " : "") + onesMapping[ones];
					}
				}
			}

			return retVal;
		}
	}

	#endregion
}
#8

أخى بارك الله فيك صاحب الموضوع,

هل بحثت داخل المنتدى و لم تجد الذى تريد

لقد رأيت مثل هذا الكود أكثر من مرة فى أكثر من مكان

فقط إذهب أعلى الصفحة و قم بكتابة كلمة تفقيط فى البحث المخصص من جوجول !!

لا إله إلا الله محمد رسول الله

アッラー以外に神はなし。ムハンマドはアッラーの使徒である

#9

الأخ الكريم/الأخت الكريمة

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

مرحباً بكم في منتدى الفريق العربي للبرمجة

تحدثنا عن هذا الموضوع في أكثر من موضوع سابق، الرجاء استخدام البحث والإطلاع على المواضيع المثبتة.

كما يرجى التنبه وعدم تكرار المخالفة في مواضيعك القادمة، وهذا بمثابة إشعار للأهمية.

قواعد المشاركة

/index.php?showtopic=29343

شاكرين لكم حُسن تعاونكم

لا إله إلا الله محمد رسول الله

アッラー以外に神はなし。ムハンマドはアッラーの使徒である

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