تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
ابحث عن كود تحويل الارقام الى حروف
#1
عملت تقارير كريستال ريبورت وفيها مبالغ مالية واريد دالة تحول الارقام الى حروف لا كثر من سبعة خانات digits يعنى الى مليون فما فوق
الرد }}}}
تم الشكر بواسطة:
#2
هذة الدالة تمكنك من تحويل الارقام الى حروف 

مثال رقم 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;
}

-----------------------
Software Developer

Microsoft Partner

الرد }}}}
تم الشكر بواسطة:
#3
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
//=======================================================
الرد }}}}
تم الشكر بواسطة:
#4
اهلا بك اخي يمكنك استخدام البنية الشررطية ب switch او if
الطريقة كما يلي بقلك ياها باي اف بعد حفظ المتغير تقوم بكتاببة
if (المتغير الكتابةي مثل x==x)
{
امر التحويل تبعا الكتابة لست فاضي اكتبه
}
else if )متل الشرط الي فوق)
{
امر الكتابة
}
يمكنك تكرار else if
واذا بدك تطبع رسالة اذا لم يكن المدخل من الموجودين فيك تحط
else
{
وهنا الامر اذا خطا ويفضل تحط انو خطا و جوتو
}
الرد }}}}
تم الشكر بواسطة:


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  [C#.NET] تحويل vbs الى exe korbavc 2 185 10-09-16, 10:09 PM
آخر رد: korbavc
  قراءة الارقام من الماكينات الى البرنامج م.أحمد الدسوقى 2 272 27-12-15, 05:17 PM
آخر رد: Eng.Feras
  كيفيه تحويل النص الى عدد وتحديد عدد الاعداد التي يجب ان تكتب في ال textbox ليلى ابوكف 4 535 20-12-15, 01:19 PM
آخر رد: م.أحمد الدسوقى
  [سؤال] تحويل النص الي كلام في السي شارب بصوت عربي؟ ahmednet_0001 6 1,145 23-10-15, 03:33 AM
آخر رد: ahmednet_0001
Brick مساعدة في تحويل كود بسيط edriano 4 852 02-07-15, 02:15 AM
آخر رد: Motaz Alnuweiri
  [C#.NET] ابحث عن مشاريع جاهزة للتعلم منها ابو مريم محمد 4 2,690 13-12-14, 10:33 AM
آخر رد: وسام1
  تحويل كود الى سي شارب محاسب يوسف 2 912 10-07-14, 04:16 PM
آخر رد: محاسب يوسف
  تحويل الكود الى سي شارب محاسب يوسف 2 796 31-03-14, 12:28 PM
آخر رد: محاسب يوسف

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


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