منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

نسخة كاملة : ابحث عن كود تحويل الارقام الى حروف
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
عملت تقارير كريستال ريبورت وفيها مبالغ مالية واريد دالة تحول الارقام الى حروف لا كثر من سبعة خانات digits يعنى الى مليون فما فوق
هذة الدالة تمكنك من تحويل الارقام الى حروف 

مثال رقم 17 = Seventeen ويمكنك التعديل على الدالة كما تشاء

كود :
public static string NumberToWords(int number)
{
   if (number == 0)
       return "zero";

   if (number < 0)
       return "minus " + NumberToWords(Math.Abs(number));

   string words = "";

   if ((number / 1000000) > 0)
   {
       words += NumberToWords(number / 1000000) + " million ";
       number %= 1000000;
   }

   if ((number / 1000) > 0)
   {
       words += NumberToWords(number / 1000) + " thousand ";
       number %= 1000;
   }

   if ((number / 100) > 0)
   {
       words += NumberToWords(number / 100) + " hundred ";
       number %= 100;
   }

   if (number > 0)
   {
       if (words != "")
           words += "and ";

       var unitsMap = new[] { "zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine", "ten", "eleven", "twelve", "thirteen", "fourteen", "fifteen", "sixteen", "seventeen", "eighteen", "nineteen" };
       var tensMap = new[] { "zero", "ten", "twenty", "thirty", "forty", "fifty", "sixty", "seventy", "eighty", "ninety" };

       if (number < 20)
           words += unitsMap[number];
       else
       {
           words += tensMap[number / 10];
           if ((number % 10) > 0)
               words += "-" + unitsMap[number % 10];
       }
   }

   return words;
}
using Microsoft.VisualBasic;
using System;
using System.Collections;
using System.Collections.Generic;
using System.Data;
using System.Diagnostics;

public class clsHoorofArabic
{
private string[] strAhad = new string[10001];
private string strRead = "";
private short Num01;
private short Num02;
private short Num03;
private string عشر = "عشر";
private string الف = "الف";
private string الفان = "الفان";
private string آلاف = "آلاف";
private string الفا = "الفاً";
private string مليون = "مليون";
private string مليونان = "مليونان";
private string مليار = "مليار";

private void تسمية_خاصة()
{
strAhad(13) = "عشر";
strAhad(15) = "";
strAhad(20) = "عشرون";
strAhad(30) = "ثلاثون";
strAhad(40) = "اربعون";
strAhad(50) = "خمسون";
strAhad(60) = "ستون";
strAhad(70) = "سبعون";
strAhad(80) = "ثمانون";
strAhad(90) = "تسعون";
strAhad(100) = "مائة";
strAhad(200) = "مائتان";
strAhad(1000) = "الف";
strAhad(2000) = "الفان";


}
private void الآحاد()
{
strAhad(0) = "صفر";
strAhad(1) = "واحد";
strAhad(2) = "اثنان";
strAhad(3) = "ثلاثة";
strAhad(4) = "اربعة";
strAhad(5) = "خمسة";
strAhad(6) = "ستة";
strAhad(7) = "سبعة";
strAhad(8) = "ثمانية";
strAhad(9) = "تسعة";
strAhad(10) = "عشرة";
strAhad(11) = "إحدى عشر";
strAhad(12) = "إثنى عشر";
}
private string خانة_الآحاد(long nValue)
{
string functionReturnValue = null;
functionReturnValue = "";
switch (nValue) {
case 15:
functionReturnValue = strAhad(nValue);

break;
case 0: // TODO: to 12
functionReturnValue = strAhad(nValue);
break;
case 1000:
case 2000:
functionReturnValue = strAhad(nValue);
break;
}
return functionReturnValue;
}
private string خانة_العشرات(long nValue)
{
string functionReturnValue = null;
strRead = "";
if (nValue.ToString.Length == 2) {
switch (nValue) {
case 10:
case 11:
case 12:
functionReturnValue = strRead;
return functionReturnValue;
}

//من 13 الى 99
Num01 = Convert.ToInt64(Microsoft.VisualBasic.Right(nValue.ToString, 1));
//Val(nValue.ToString.Last())
Num02 = nValue - Num01;

if (Num01 == 0) {
strRead = strAhad(Num02);
} else if (nValue <= 19) {
strRead = strAhad(Num01) + " " + strAhad(Num02).Replace("ة", "");
} else {
strRead = strAhad(Num01) + " و" + strAhad(Num02);
}


}
functionReturnValue = strRead;
return functionReturnValue;
}
private string خانة_المئات(long nValue)
{
strRead = "";
if (nValue.ToString.Length == 3) {
long AValue = 0;
long BValue = 0;
AValue = Convert.ToInt64(Microsoft.VisualBasic.Right(nValue.ToString, 2));
BValue = nValue - AValue;
if (BValue == 100 | BValue == 200) {
if (AValue == 0) {
strRead = strAhad(BValue);
} else if (AValue <= 12) {
strRead = strAhad(BValue) + " و" + strAhad(AValue);

} else {
strRead = strAhad(BValue) + " و" + خانة_العشرات(AValue);
}

} else {

if (AValue >= 1 & AValue <= 12) {
strRead = strAhad(Conversion.Val(Microsoft.VisualBasic.Left(BValue.ToString, 1))).Remove(strAhad(Conversion.Val(Microsoft.VisualBasic.Left(BValue.ToString, 1))).Count - 1) + strAhad(100) + " و" + strAhad(AValue);



} else if (AValue != 0) {
strRead = strAhad(Conversion.Val(Microsoft.VisualBasic.Left(BValue.ToString, 1))).Remove(strAhad(Conversion.Val(Microsoft.VisualBasic.Left(BValue.ToString, 1))).Count - 1) + strAhad(100) + " و" + خانة_العشرات(AValue);
} else if (AValue == 0) {
strRead = strAhad(Conversion.Val(Microsoft.VisualBasic.Left(BValue.ToString, 1))).Remove(strAhad(Conversion.Val(Microsoft.VisualBasic.Left(BValue.ToString, 1))).Count - 1) + strAhad(100);


}
}

}
return strRead;
}

private string ReadHoorof(long nValue)
{
تسمية_خاصة();
الآحاد();
if (nValue <= 12) {
strRead = خانة_الآحاد(nValue);
} else if (nValue.ToString.Length == 2) {
strRead = خانة_العشرات(nValue);
} else if (nValue.ToString.Length == 3) {
strRead = خانة_المئات(nValue);


}

return strRead;

}
private string GetHoorof(long nValue)
{
long AValue = 0;
long BValue = 0;

string strRead = "";
تسمية_خاصة();
الآحاد();

switch (nValue.ToString.Length()) {
case 1:
strRead = strAhad(nValue);
break;
case 2:
switch (nValue) {
case 10:
case 11:
case 12:
strRead = strAhad(nValue);
break;
case 13:
case 14:
case 15:
case 16:
case 17:
case 18:
case 19:
strRead = strAhad(nValue) + " " + عشر;

break;
}
break;
}
return strRead;
}
public string convert2hroof(decimal الرقم, byte عدد_الخانات_العشرية, string تسمية_العملة, string تسمية_الوحدة, bool إضافة_كلمة_فقط, bool إضافة_كلمة_لاغير)
{
string functionReturnValue = null;

int مضروب_الخانات_العشرية = 0;

switch (عدد_الخانات_العشرية) {
case 1:
مضروب_الخانات_العشرية = 10;
break;
case 2:
مضروب_الخانات_العشرية = 100;
break;
case 3:
مضروب_الخانات_العشرية = 1000;
break;
case 4:
مضروب_الخانات_العشرية = 10000;
break;
case 5:
مضروب_الخانات_العشرية = 100000;
break;
}
string كلمة_لاغير = "";
string كلمة_فقط = "";

if (إضافة_كلمة_لاغير == true) {
كلمة_لاغير = "لاغير";
} else {
كلمة_لاغير = "";

}
if (إضافة_كلمة_فقط == true) {
كلمة_فقط = "فقط";
} else {
كلمة_فقط = "";

}

List<long> قائمة_القيم = new List<long>();
long عدد_صحيح = 0;
long عدد_عشري = 0;

عدد_صحيح = Math.Truncate(الرقم);
عدد_عشري = Math.Truncate((decimal.Subtract(الرقم, decimal.Floor(الرقم))) * مضروب_الخانات_العشرية);


string delimStr = ",";
char[] delimiter = delimStr.ToCharArray();
string words = Strings.FormatNumber(عدد_صحيح, 0, TriState.True).ToString();
// "one two,three:four."
string[] split = null;

int I = 0;
byte sum = 0;
for (I = 0; I <= words.Count - 1; I++) {
if (words(I) == ",") {
sum = sum + 1;
}
}

split = words.Split(delimiter, sum + 1);
string s = null;
string ss = "";

foreach (string s_loopVariable in split) {
s = s_loopVariable;
قائمة_القيم.Add(Convert.ToInt64(s));
}
string strHorof = "";
string strHorof1 = "";
string strHorof2 = "";
string strHorof3 = "";
string strHorof4 = "";
switch (قائمة_القيم.Count) {
case 1:

strHorof = ReadHoorof(قائمة_القيم.Item(0));

break;
case 2:
if (قائمة_القيم.Item(1) == 0) {
switch (قائمة_القيم.Item(0)) {
case 1:
strHorof = "الف";
break;
case 2:
strHorof = "الفان";
break;
case 3:
case 4:
case 5:
case 6:
case 7:
case 8:
case 9:
case 10:
strHorof = ReadHoorof(قائمة_القيم.Item(0)) + " " + "آلاف";
break;
default:
strHorof = ReadHoorof(قائمة_القيم.Item(0)) + " " + "الف";
break;
}
} else {
switch (قائمة_القيم.Item(0)) {
case 1:
strHorof = "الف" + " و" + ReadHoorof(قائمة_القيم.Item(1));
break;
case 2:
strHorof = "الفان" + " و" + ReadHoorof(قائمة_القيم.Item(1));
break;
case 3:
case 4:
case 5:
case 6:
case 7:
case 8:
case 9:
case 10:
strHorof = ReadHoorof(قائمة_القيم.Item(0)) + " " + "آلاف" + " و" + ReadHoorof(قائمة_القيم.Item(1));
break;
default:
strHorof = ReadHoorof(قائمة_القيم.Item(0)) + " " + "الف" + " و" + ReadHoorof(قائمة_القيم.Item(1));
break;
}

}

break;
case 3:
if (قائمة_القيم.Item(1) == 0 & قائمة_القيم.Item(2) == 0) {
switch (قائمة_القيم.Item(0)) {
case 1:
strHorof = "مليون";
break;
case 2:
strHorof = "مليونان";
break;
default:
strHorof = ReadHoorof(قائمة_القيم.Item(0)) + " " + "مليون";
break;
}

} else if (قائمة_القيم.Item(2) == 0) {
switch (قائمة_القيم.Item(1)) {
case 1:
strHorof1 = "الف";
break;
case 2:
strHorof1 = "الفان";
break;
case 3:
case 4:
case 5:
case 6:
case 7:
case 8:
case 9:
case 10:
strHorof1 = ReadHoorof(قائمة_القيم.Item(1)) + " " + "آلاف";
break;
default:
strHorof1 = ReadHoorof(قائمة_القيم.Item(1)) + " " + "الف";
break;
}
switch (قائمة_القيم.Item(0)) {
case 1:
strHorof = "مليون" + " و" + strHorof1;
break;
case 2:
strHorof = "مليونان" + " و" + strHorof1;
break;
default:
strHorof = ReadHoorof(قائمة_القيم.Item(0)) + " " + "مليون" + " و" + strHorof1;
break;
}

} else {
strHorof2 = ReadHoorof(قائمة_القيم.Item(2));
switch (قائمة_القيم.Item(1)) {
case 1:
strHorof1 = "الف";
break;
case 2:
strHorof1 = "الفان";
break;
case 3:
case 4:
case 5:
case 6:
case 7:
case 8:
case 9:
case 10:
strHorof1 = ReadHoorof(قائمة_القيم.Item(1)) + " " + "آلاف";
break;
default:
strHorof1 = ReadHoorof(قائمة_القيم.Item(1)) + " " + "الف";
break;
}
switch (قائمة_القيم.Item(0)) {
case 1:
strHorof = "مليون" + " و" + strHorof1 + " و" + strHorof2;
break;
case 2:
strHorof = "مليونان" + " و" + strHorof1 + " و" + strHorof2;
break;
default:
strHorof = ReadHoorof(قائمة_القيم.Item(0)) + " " + "مليون" + " و" + strHorof1 + " و" + strHorof2;
break;
}

}

break;

case 4:

break;
}
if (عدد_عشري == 0) {
functionReturnValue = كلمة_فقط + " " + strHorof + " " + تسمية_العملة + " " + كلمة_لاغير;
} else {
functionReturnValue = كلمة_فقط + " " + strHorof + " " + تسمية_العملة + " و" + عدد_عشري.ToString() + " " + تسمية_الوحدة + " " + كلمة_لاغير;

}
return functionReturnValue;

}

}

//=======================================================
//Service provided by Telerik (http://www.telerik.com)
//Conversion powered by NRefactory.
//Twitter: @telerik
//Facebook: facebook.com/telerik
//=======================================================
اهلا بك اخي يمكنك استخدام البنية الشررطية ب switch او if
الطريقة كما يلي بقلك ياها باي اف بعد حفظ المتغير تقوم بكتاببة
if (المتغير الكتابةي مثل x==x)
{
امر التحويل تبعا الكتابة لست فاضي اكتبه
}
else if )متل الشرط الي فوق)
{
امر الكتابة
}
يمكنك تكرار else if
واذا بدك تطبع رسالة اذا لم يكن المدخل من الموجودين فيك تحط
else
{
وهنا الامر اذا خطا ويفضل تحط انو خطا و جوتو
}