السلام عليكــم ورحمـة الله وبركاتــه ،،
اريد كود للتفقيط بمعنى اخر اريد كود لتحويل العملات الى نصوص مثال 55دولار تكون خمسة وخمسون دولار
انا بحثت كثيرا ووجدت اكواد كثيرة زلكنها بها عيوب اريد داله مضمونة
جزاكم الله خيرا
السلام عليكــم ورحمـة الله وبركاتــه ،،
اريد كود للتفقيط بمعنى اخر اريد كود لتحويل العملات الى نصوص مثال 55دولار تكون خمسة وخمسون دولار
انا بحثت كثيرا ووجدت اكواد كثيرة زلكنها بها عيوب اريد داله مضمونة
جزاكم الله خيرا
السلام عليكم
هذا كلاس يوجد به دالة للتفقيط و انا استخدمها
#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و هذا ماف يوجد به مثال
و الله في عون العبد ما دام العبد في عون أخيه
لكم جزيل الشكر
ولكن هل هل يوجد في هذه الدالة العملات انا لاحظت ان الدالة تكتب النصوص سليمة ولكنها بدون رمز الجنيه او القرش
يمكنك ان تضيفها نتا بكل سهولة
و ذلك ان تضيف للنص العمل التي تريدها
مثال :
الف و مئتان " درهم"
و الله في عون العبد ما دام العبد في عون أخيه
طيب وماذا عن القروش؟
انتهيت من تظبيط الكود لكي يكون بالعملة وهذا هو التعديل للافادة
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
}عزرا الكود السابق به خطا هذا هو الكود الصحيح
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
}أخى بارك الله فيك صاحب الموضوع,
هل بحثت داخل المنتدى و لم تجد الذى تريد
لقد رأيت مثل هذا الكود أكثر من مرة فى أكثر من مكان
فقط إذهب أعلى الصفحة و قم بكتابة كلمة تفقيط فى البحث المخصص من جوجول !!
لا إله إلا الله محمد رسول الله
アッラー以外に神はなし。ムハンマドはアッラーの使徒である
الأخ الكريم/الأخت الكريمة
السلام عليكم ورحمة الله وبركاته.
مرحباً بكم في منتدى الفريق العربي للبرمجة
تحدثنا عن هذا الموضوع في أكثر من موضوع سابق، الرجاء استخدام البحث والإطلاع على المواضيع المثبتة.
كما يرجى التنبه وعدم تكرار المخالفة في مواضيعك القادمة، وهذا بمثابة إشعار للأهمية.
قواعد المشاركة
شاكرين لكم حُسن تعاونكم
لا إله إلا الله محمد رسول الله
アッラー以外に神はなし。ムハンマドはアッラーの使徒である