تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
[تم الحل] مشكلة فى تحويل مشروع تفقيط من vb.net الى #C
#1
السلام عليكم 
عندى مشكلة وهى تحويل مشروع تفقيط من vb.net الى #C
هذا هو  الكلاس اللى داخل المشروع

كود :
Module Mony_Count
   Function NoToTxt(ByVal TheNo As Double, ByVal MyCur As String, ByVal MySubCur As String) As String
       Dim MyArry1(0 To 9) As String
       Dim MyArry2(0 To 9) As String
       Dim MyArry3(0 To 9) As String
       Dim MyNo As String = ""
       Dim GetNo As String = ""
       Dim RdNo As String = ""
       Dim My100 As String = ""
       Dim My10 As String = ""
       Dim My1 As String = ""
       Dim My11 As String = ""
       Dim My12 As String = ""
       Dim GetTxt As String = ""
       Dim Mybillion As String = ""
       Dim MyMillion As String = ""
       Dim MyThou As String = ""
       Dim MyHun As String = ""
       Dim MyFraction As String = ""
       Dim MyAnd As String = ""
       Dim i As Integer
       Dim ReMark As String = ""


       If TheNo > 999999999999.99 Then

       End If


       If TheNo = 0 Then
           NoToTxt = "صفر"
           Exit Function
       End If

       MyAnd = " و"
       MyArry1(0) = ""
       MyArry1(1) = "مائة"
       MyArry1(2) = "مائتان"
       MyArry1(3) = "ثلاثمائة"
       MyArry1(4) = "أربعمائة"
       MyArry1(5) = "خمسمائة"
       MyArry1(6) = "ستمائة"
       MyArry1(7) = "سبعمائة"
       MyArry1(8) = "ثمانمائة"
       MyArry1(9) = "تسعمائة"

       MyArry2(0) = ""
       MyArry2(1) = " عشر"
       MyArry2(2) = "عشرون"
       MyArry2(3) = "ثلاثون"
       MyArry2(4) = "أربعون"
       MyArry2(5) = "خمسون"
       MyArry2(6) = "ستون"
       MyArry2(7) = "سبعون"
       MyArry2(8) = "ثمانون"
       MyArry2(9) = "تسعون"

       MyArry3(0) = ""
       MyArry3(1) = "واحد"
       MyArry3(2) = "اثنان"
       MyArry3(3) = "ثلاثة"
       MyArry3(4) = "أربعة"
       MyArry3(5) = "خمسة"
       MyArry3(6) = "ستة"
       MyArry3(7) = "سبعة"
       MyArry3(8) = "ثمانية"
       MyArry3(9) = "تسعة"
       '======================
       GetNo = Format(TheNo, "000000000000.00")

       i = 0
       Do While i < 15

           If i < 12 Then
               MyNo = Mid$(GetNo, i + 1, 3)
           Else
               MyNo = "0" + Mid$(GetNo, i + 2, 2)
           End If

           If (Mid$(MyNo, 1, 3)) > 0 Then

               RdNo = Mid$(MyNo, 1, 1)
               My100 = MyArry1(RdNo)
               RdNo = Mid$(MyNo, 3, 1)
               My1 = MyArry3(RdNo)
               RdNo = Mid$(MyNo, 2, 1)
               My10 = MyArry2(RdNo)

               If Mid$(MyNo, 2, 2) = 11 Then My11 = "إحدى عشر"
               If Mid$(MyNo, 2, 2) = 12 Then My12 = "إثنى عشر"
               If Mid$(MyNo, 2, 2) = 10 Then My10 = "عشرة"

               If ((Mid$(MyNo, 1, 1)) > 0) And ((Mid$(MyNo, 2, 2)) > 0) Then My100 = My100 + MyAnd
               If ((Mid$(MyNo, 3, 1)) > 0) And ((Mid$(MyNo, 2, 1)) > 1) Then My1 = My1 + MyAnd

               GetTxt = My100 + My1 + My10

               If ((Mid$(MyNo, 3, 1)) = 1) And ((Mid$(MyNo, 2, 1)) = 1) Then
                   GetTxt = My100 + My11
                   If ((Mid$(MyNo, 1, 1)) = 0) Then GetTxt = My11
               End If

               If ((Mid$(MyNo, 3, 1)) = 2) And ((Mid$(MyNo, 2, 1)) = 1) Then
                   GetTxt = My100 + My12
                   If ((Mid$(MyNo, 1, 1)) = 0) Then GetTxt = My12
               End If

               If (i = 0) And (GetTxt <> "") Then
                   If ((Mid$(MyNo, 1, 3)) > 10) Then
                       Mybillion = GetTxt + " مليار"
                   Else
                       Mybillion = GetTxt + " مليارات"
                       If ((Mid$(MyNo, 1, 3)) = 2) Then Mybillion = " مليار"
                       If ((Mid$(MyNo, 1, 3)) = 2) Then Mybillion = " ملياران"
                   End If
               End If

               If (i = 3) And (GetTxt <> "") Then

                   If ((Mid$(MyNo, 1, 3)) > 10) Then
                       MyMillion = GetTxt + " مليون"
                   Else
                       MyMillion = GetTxt + " ملايين"
                       If ((Mid$(MyNo, 1, 3)) = 1) Then MyMillion = " مليون"
                       If ((Mid$(MyNo, 1, 3)) = 2) Then MyMillion = " مليونان"
                   End If
               End If

               If (i = 6) And (GetTxt <> "") Then
                   If ((Mid$(MyNo, 1, 3)) > 10) Then
                       MyThou = GetTxt + " ألف"
                   Else
                       MyThou = GetTxt + " آلاف"
                       If ((Mid$(MyNo, 3, 1)) = 1) Then MyThou = " ألف"
                       If ((Mid$(MyNo, 3, 1)) = 2) Then MyThou = " ألفان"
                   End If
               End If

               If (i = 9) And (GetTxt <> "") Then MyHun = GetTxt
               If (i = 12) And (GetTxt <> "") Then MyFraction = GetTxt
           End If

           i = i + 3
       Loop

       If (Mybillion <> "") Then
           If (MyMillion <> "") Or (MyThou <> "") Or (MyHun <> "") Then Mybillion = Mybillion + MyAnd
       End If

       If (MyMillion <> "") Then
           If (MyThou <> "") Or (MyHun <> "") Then MyMillion = MyMillion + MyAnd
       End If

       If (MyThou <> "") Then
           If (MyHun <> "") Then MyThou = MyThou + MyAnd
       End If

       If MyFraction <> "" Then
           If (Mybillion <> "") Or (MyMillion <> "") Or (MyThou <> "") Or (MyHun <> "") Then
               NoToTxt = ReMark + Mybillion + MyMillion + MyThou + MyHun + " " + MyCur + MyAnd + MyFraction + " " + MySubCur
           Else
               NoToTxt = ReMark + MyFraction + " " + MySubCur
           End If
       Else
           NoToTxt = ReMark + Mybillion + MyMillion + MyThou + MyHun + " " + MyCur
       End If
   End Function
End Module


بتمني من اى حد عنده خبره يحولهولي الى سي شارب
انا كمان رفعت المشروع للي حابب يشوفه ويعدله
شكراً مقدماً


الملفات المرفقة
.zip   NumberToWords.zip (الحجم : 82.09 ك ب / التحميلات : 6)
الرد
تم الشكر بواسطة:
#2
السلام عليكم 
تفضل اخي انشاء الله لايظهر فيه خطأ جربه
وان وجد قم بتعديله انت 
كود :
public string NoToTxt(double TheNo, string MyCur, string MySubCur)
{
       string tempNoToTxt = null;
       string[] MyArry1 = new string[10];
       string[] MyArry2 = new string[10];
       string[] MyArry3 = new string[10];
       string MyNo = "";
       string GetNo = "";
       string RdNo = "";
       string My100 = "";
       string My10 = "";
       string My1 = "";
       string My11 = "";
       string My12 = "";
       string GetTxt = "";
       string Mybillion = "";
       string MyMillion = "";
       string MyThou = "";
       string MyHun = "";
       string MyFraction = "";
       string MyAnd = "";
       int i = 0;
       string ReMark = "";


       if (TheNo > 999999999999.99)
       {

       }


       if (TheNo == 0)
       {
           return "صفر";
       }

       MyAnd = " و";
       MyArry1[0] = "";
       MyArry1[1] = "مائة";
       MyArry1[2] = "مائتان";
       MyArry1[3] = "ثلاثمائة";
       MyArry1[4] = "أربعمائة";
       MyArry1[5] = "خمسمائة";
       MyArry1[6] = "ستمائة";
       MyArry1[7] = "سبعمائة";
       MyArry1[8] = "ثمانمائة";
       MyArry1[9] = "تسعمائة";

       MyArry2[0] = "";
       MyArry2[1] = " عشر";
       MyArry2[2] = "عشرون";
       MyArry2[3] = "ثلاثون";
       MyArry2[4] = "أربعون";
       MyArry2[5] = "خمسون";
       MyArry2[6] = "ستون";
       MyArry2[7] = "سبعون";
       MyArry2[8] = "ثمانون";
       MyArry2[9] = "تسعون";

       MyArry3[0] = "";
       MyArry3[1] = "واحد";
       MyArry3[2] = "اثنان";
       MyArry3[3] = "ثلاثة";
       MyArry3[4] = "أربعة";
       MyArry3[5] = "خمسة";
       MyArry3[6] = "ستة";
       MyArry3[7] = "سبعة";
       MyArry3[8] = "ثمانية";
       MyArry3[9] = "تسعة";
       //======================
       GetNo = TheNo.ToString("000000000000.00");

       i = 0;
       while (i < 15)
       {

           if (i < 12)
           {
               MyNo = GetNo.Substring(i, 3);
           }
           else
           {
               MyNo = "0" + GetNo.Substring((i + 2) - 1, 2);
           }

           if ((MyNo.Substring(0, 3)).CompareTo(0.ToString()) > 0)
           {

               RdNo = MyNo.Substring(0, 1);
               My100 = MyArry1[Convert.ToInt32(RdNo)];
               RdNo = MyNo.Substring(2, 1);
               My1 = MyArry3[Convert.ToInt32(RdNo)];
               RdNo = MyNo.Substring(1, 1);
               My10 = MyArry2[Convert.ToInt32(RdNo)];

               if (MyNo.Substring(1, 2) == 11.ToString())
               {
                   My11 = "إحدى عشر";
               }
               if (MyNo.Substring(1, 2) == 12.ToString())
               {
                   My12 = "إثنى عشر";
               }
               if (MyNo.Substring(1, 2) == 10.ToString())
               {
                   My10 = "عشرة";
               }

               if (((MyNo.Substring(0, 1)).CompareTo(0.ToString()) > 0) && ((MyNo.Substring(1, 2)).CompareTo(0.ToString()) > 0))
               {
                   My100 = My100 + MyAnd;
               }
               if (((MyNo.Substring(2, 1)).CompareTo(0.ToString()) > 0) && ((MyNo.Substring(1, 1)).CompareTo(1.ToString()) > 0))
               {
                   My1 = My1 + MyAnd;
               }

               GetTxt = My100 + My1 + My10;

               if (((MyNo.Substring(2, 1)) == 1.ToString()) && ((MyNo.Substring(1, 1)) == 1.ToString()))
               {
                   GetTxt = My100 + My11;
                   if ((MyNo.Substring(0, 1)) == 0.ToString())
                   {
                       GetTxt = My11;
                   }
               }

               if (((MyNo.Substring(2, 1)) == 2.ToString()) && ((MyNo.Substring(1, 1)) == 1.ToString()))
               {
                   GetTxt = My100 + My12;
                   if ((MyNo.Substring(0, 1)) == 0.ToString())
                   {
                       GetTxt = My12;
                   }
               }

               if ((i == 0) && (!string.IsNullOrEmpty(GetTxt)))
               {
                   if ((MyNo.Substring(0, 3)).CompareTo(10.ToString()) > 0)
                   {
                       Mybillion = GetTxt + " مليار";
                   }
                   else
                   {
                       Mybillion = GetTxt + " مليارات";
                       if ((MyNo.Substring(0, 3)) == 2.ToString())
                       {
                           Mybillion = " مليار";
                       }
                       if ((MyNo.Substring(0, 3)) == 2.ToString())
                       {
                           Mybillion = " ملياران";
                       }
                   }
               }

               if ((i == 3) && (!string.IsNullOrEmpty(GetTxt)))
               {

                   if ((MyNo.Substring(0, 3)).CompareTo(10.ToString()) > 0)
                   {
                       MyMillion = GetTxt + " مليون";
                   }
                   else
                   {
                       MyMillion = GetTxt + " ملايين";
                       if ((MyNo.Substring(0, 3)) == 1.ToString())
                       {
                           MyMillion = " مليون";
                       }
                       if ((MyNo.Substring(0, 3)) == 2.ToString())
                       {
                           MyMillion = " مليونان";
                       }
                   }
               }

               if ((i == 6) && (!string.IsNullOrEmpty(GetTxt)))
               {
                   if ((MyNo.Substring(0, 3)).CompareTo(10.ToString()) > 0)
                   {
                       MyThou = GetTxt + " ألف";
                   }
                   else
                   {
                       MyThou = GetTxt + " آلاف";
                       if ((MyNo.Substring(2, 1)) == 1.ToString())
                       {
                           MyThou = " ألف";
                       }
                       if ((MyNo.Substring(2, 1)) == 2.ToString())
                       {
                           MyThou = " ألفان";
                       }
                   }
               }

               if ((i == 9) && (!string.IsNullOrEmpty(GetTxt)))
               {
                   MyHun = GetTxt;
               }
               if ((i == 12) && (!string.IsNullOrEmpty(GetTxt)))
               {
                   MyFraction = GetTxt;
               }
           }

           i = i + 3;
       }

       if (!string.IsNullOrEmpty(Mybillion))
       {
           if ((!string.IsNullOrEmpty(MyMillion)) || (!string.IsNullOrEmpty(MyThou)) || (!string.IsNullOrEmpty(MyHun)))
           {
               Mybillion = Mybillion + MyAnd;
           }
       }

       if (!string.IsNullOrEmpty(MyMillion))
       {
           if ((!string.IsNullOrEmpty(MyThou)) || (!string.IsNullOrEmpty(MyHun)))
           {
               MyMillion = MyMillion + MyAnd;
           }
       }

       if (!string.IsNullOrEmpty(MyThou))
       {
           if (!string.IsNullOrEmpty(MyHun))
           {
               MyThou = MyThou + MyAnd;
           }
       }

       if (!string.IsNullOrEmpty(MyFraction))
       {
           if ((!string.IsNullOrEmpty(Mybillion)) || (!string.IsNullOrEmpty(MyMillion)) || (!string.IsNullOrEmpty(MyThou)) || (!string.IsNullOrEmpty(MyHun)))
           {
               tempNoToTxt = ReMark + Mybillion + MyMillion + MyThou + MyHun + " " + MyCur + MyAnd + MyFraction + " " + MySubCur;
           }
           else
           {
               tempNoToTxt = ReMark + MyFraction + " " + MySubCur;
           }
       }
       else
       {
           tempNoToTxt = ReMark + Mybillion + MyMillion + MyThou + MyHun + " " + MyCur;
       }
       return tempNoToTxt;
  }

الرد
#3
(16-07-19, 04:36 PM)ابراهيم ايبو كتب :
السلام عليكم 
تفضل اخي انشاء الله لايظهر فيه خطأ جربه
وان وجد قم بتعديله انت 
كود :
public string NoToTxt(double TheNo, string MyCur, string MySubCur)
{
       string tempNoToTxt = null;
       string[] MyArry1 = new string[10];
       string[] MyArry2 = new string[10];
       string[] MyArry3 = new string[10];
       string MyNo = "";
       string GetNo = "";
       string RdNo = "";
       string My100 = "";
       string My10 = "";
       string My1 = "";
       string My11 = "";
       string My12 = "";
       string GetTxt = "";
       string Mybillion = "";
       string MyMillion = "";
       string MyThou = "";
       string MyHun = "";
       string MyFraction = "";
       string MyAnd = "";
       int i = 0;
       string ReMark = "";


       if (TheNo > 999999999999.99)
       {

       }


       if (TheNo == 0)
       {
           return "صفر";
       }

       MyAnd = " و";
       MyArry1[0] = "";
       MyArry1[1] = "مائة";
       MyArry1[2] = "مائتان";
       MyArry1[3] = "ثلاثمائة";
       MyArry1[4] = "أربعمائة";
       MyArry1[5] = "خمسمائة";
       MyArry1[6] = "ستمائة";
       MyArry1[7] = "سبعمائة";
       MyArry1[8] = "ثمانمائة";
       MyArry1[9] = "تسعمائة";

       MyArry2[0] = "";
       MyArry2[1] = " عشر";
       MyArry2[2] = "عشرون";
       MyArry2[3] = "ثلاثون";
       MyArry2[4] = "أربعون";
       MyArry2[5] = "خمسون";
       MyArry2[6] = "ستون";
       MyArry2[7] = "سبعون";
       MyArry2[8] = "ثمانون";
       MyArry2[9] = "تسعون";

       MyArry3[0] = "";
       MyArry3[1] = "واحد";
       MyArry3[2] = "اثنان";
       MyArry3[3] = "ثلاثة";
       MyArry3[4] = "أربعة";
       MyArry3[5] = "خمسة";
       MyArry3[6] = "ستة";
       MyArry3[7] = "سبعة";
       MyArry3[8] = "ثمانية";
       MyArry3[9] = "تسعة";
       //======================
       GetNo = TheNo.ToString("000000000000.00");

       i = 0;
       while (i < 15)
       {

           if (i < 12)
           {
               MyNo = GetNo.Substring(i, 3);
           }
           else
           {
               MyNo = "0" + GetNo.Substring((i + 2) - 1, 2);
           }

           if ((MyNo.Substring(0, 3)).CompareTo(0.ToString()) > 0)
           {

               RdNo = MyNo.Substring(0, 1);
               My100 = MyArry1[Convert.ToInt32(RdNo)];
               RdNo = MyNo.Substring(2, 1);
               My1 = MyArry3[Convert.ToInt32(RdNo)];
               RdNo = MyNo.Substring(1, 1);
               My10 = MyArry2[Convert.ToInt32(RdNo)];

               if (MyNo.Substring(1, 2) == 11.ToString())
               {
                   My11 = "إحدى عشر";
               }
               if (MyNo.Substring(1, 2) == 12.ToString())
               {
                   My12 = "إثنى عشر";
               }
               if (MyNo.Substring(1, 2) == 10.ToString())
               {
                   My10 = "عشرة";
               }

               if (((MyNo.Substring(0, 1)).CompareTo(0.ToString()) > 0) && ((MyNo.Substring(1, 2)).CompareTo(0.ToString()) > 0))
               {
                   My100 = My100 + MyAnd;
               }
               if (((MyNo.Substring(2, 1)).CompareTo(0.ToString()) > 0) && ((MyNo.Substring(1, 1)).CompareTo(1.ToString()) > 0))
               {
                   My1 = My1 + MyAnd;
               }

               GetTxt = My100 + My1 + My10;

               if (((MyNo.Substring(2, 1)) == 1.ToString()) && ((MyNo.Substring(1, 1)) == 1.ToString()))
               {
                   GetTxt = My100 + My11;
                   if ((MyNo.Substring(0, 1)) == 0.ToString())
                   {
                       GetTxt = My11;
                   }
               }

               if (((MyNo.Substring(2, 1)) == 2.ToString()) && ((MyNo.Substring(1, 1)) == 1.ToString()))
               {
                   GetTxt = My100 + My12;
                   if ((MyNo.Substring(0, 1)) == 0.ToString())
                   {
                       GetTxt = My12;
                   }
               }

               if ((i == 0) && (!string.IsNullOrEmpty(GetTxt)))
               {
                   if ((MyNo.Substring(0, 3)).CompareTo(10.ToString()) > 0)
                   {
                       Mybillion = GetTxt + " مليار";
                   }
                   else
                   {
                       Mybillion = GetTxt + " مليارات";
                       if ((MyNo.Substring(0, 3)) == 2.ToString())
                       {
                           Mybillion = " مليار";
                       }
                       if ((MyNo.Substring(0, 3)) == 2.ToString())
                       {
                           Mybillion = " ملياران";
                       }
                   }
               }

               if ((i == 3) && (!string.IsNullOrEmpty(GetTxt)))
               {

                   if ((MyNo.Substring(0, 3)).CompareTo(10.ToString()) > 0)
                   {
                       MyMillion = GetTxt + " مليون";
                   }
                   else
                   {
                       MyMillion = GetTxt + " ملايين";
                       if ((MyNo.Substring(0, 3)) == 1.ToString())
                       {
                           MyMillion = " مليون";
                       }
                       if ((MyNo.Substring(0, 3)) == 2.ToString())
                       {
                           MyMillion = " مليونان";
                       }
                   }
               }

               if ((i == 6) && (!string.IsNullOrEmpty(GetTxt)))
               {
                   if ((MyNo.Substring(0, 3)).CompareTo(10.ToString()) > 0)
                   {
                       MyThou = GetTxt + " ألف";
                   }
                   else
                   {
                       MyThou = GetTxt + " آلاف";
                       if ((MyNo.Substring(2, 1)) == 1.ToString())
                       {
                           MyThou = " ألف";
                       }
                       if ((MyNo.Substring(2, 1)) == 2.ToString())
                       {
                           MyThou = " ألفان";
                       }
                   }
               }

               if ((i == 9) && (!string.IsNullOrEmpty(GetTxt)))
               {
                   MyHun = GetTxt;
               }
               if ((i == 12) && (!string.IsNullOrEmpty(GetTxt)))
               {
                   MyFraction = GetTxt;
               }
           }

           i = i + 3;
       }

       if (!string.IsNullOrEmpty(Mybillion))
       {
           if ((!string.IsNullOrEmpty(MyMillion)) || (!string.IsNullOrEmpty(MyThou)) || (!string.IsNullOrEmpty(MyHun)))
           {
               Mybillion = Mybillion + MyAnd;
           }
       }

       if (!string.IsNullOrEmpty(MyMillion))
       {
           if ((!string.IsNullOrEmpty(MyThou)) || (!string.IsNullOrEmpty(MyHun)))
           {
               MyMillion = MyMillion + MyAnd;
           }
       }

       if (!string.IsNullOrEmpty(MyThou))
       {
           if (!string.IsNullOrEmpty(MyHun))
           {
               MyThou = MyThou + MyAnd;
           }
       }

       if (!string.IsNullOrEmpty(MyFraction))
       {
           if ((!string.IsNullOrEmpty(Mybillion)) || (!string.IsNullOrEmpty(MyMillion)) || (!string.IsNullOrEmpty(MyThou)) || (!string.IsNullOrEmpty(MyHun)))
           {
               tempNoToTxt = ReMark + Mybillion + MyMillion + MyThou + MyHun + " " + MyCur + MyAnd + MyFraction + " " + MySubCur;
           }
           else
           {
               tempNoToTxt = ReMark + MyFraction + " " + MySubCur;
           }
       }
       else
       {
           tempNoToTxt = ReMark + Mybillion + MyMillion + MyThou + MyHun + " " + MyCur;
       }
       return tempNoToTxt;
  }


شغال تمام اخى العزيز 
شكراً جداً ليك
الرد
#4
الحمد لله والشكر لله
اخي الكريم اراك مستغرب من سرعة الرد وتحويل الكود(لست سوبرمان)
للمصادفة في احد الايام منذ مايقرب من اربعة اشهر كنت في زيارة عند ابني 
وكان نفس الكود عندي بالفيجوال وجلست اتسلى في تحويله واخذ مني مايقرب 3 ساعات
وجربته وظهر لي خطأ ولم اشا ان ابحث عن الحطأ فانزعجت وتركت المشروع
وعندما طلبته انت قمت بارساله وبما انه خال من الخطأ 
اذا الخطأ عندي في مشروعي في كود أخر غير التفقيط
رب صدفة خير من الف ميعاد 
دمت بخير
الرد
#5
ما رأيك مشروع تفقيط الأرقام عربي / إنجليزي متعدد العملات :

   

   

مشروع تفقيط الأرقام عربي / إنجليزي متعدد العملات .
الرد
#6
(16-07-19, 05:19 PM)ابراهيم ايبو كتب :
الحمد لله والشكر لله
اخي الكريم اراك مستغرب من سرعة الرد وتحويل الكود(لست سوبرمان)
للمصادفة في احد الايام منذ مايقرب من اربعة اشهر كنت في زيارة عند ابني 
وكان نفس الكود عندي بالفيجوال وجلست اتسلى في تحويله واخذ مني مايقرب 3 ساعات
وجربته وظهر لي خطأ ولم اشا ان ابحث عن الحطأ فانزعجت وتركت المشروع
وعندما طلبته انت قمت بارساله وبما انه خال من الخطأ 
اذا الخطأ عندي في مشروعي في كود أخر غير التفقيط
رب صدفة خير من الف ميعاد 
دمت بخير

فعلا فيه صدف كدا غريبه تخليك تبوص للحاجه بنظره تانى خالص
بتمني تكون عرفت الخطأ اللى كان عندك فى المشروع
تحياتي اخى العزيز

(16-07-19, 07:06 PM)asemshahen5 كتب : ما رأيك مشروع تفقيط الأرقام عربي / إنجليزي متعدد العملات :





مشروع تفقيط الأرقام عربي / إنجليزي متعدد العملات .


اخى العزيز جداً asemshahen5

كالعاده دائماً متألق بجد شكراً جداً
الرد
#7
(16-07-19, 04:36 PM)ابراهيم ايبو كتب :
السلام عليكم 
تفضل اخي انشاء الله لايظهر فيه خطأ جربه
وان وجد قم بتعديله انت 
كود :
public string NoToTxt(double TheNo, string MyCur, string MySubCur)
{
       string tempNoToTxt = null;
       string[] MyArry1 = new string[10];
       string[] MyArry2 = new string[10];
       string[] MyArry3 = new string[10];
       string MyNo = "";
       string GetNo = "";
       string RdNo = "";
       string My100 = "";
       string My10 = "";
       string My1 = "";
       string My11 = "";
       string My12 = "";
       string GetTxt = "";
       string Mybillion = "";
       string MyMillion = "";
       string MyThou = "";
       string MyHun = "";
       string MyFraction = "";
       string MyAnd = "";
       int i = 0;
       string ReMark = "";


       if (TheNo > 999999999999.99)
       {

       }


       if (TheNo == 0)
       {
           return "صفر";
       }

       MyAnd = " و";
       MyArry1[0] = "";
       MyArry1[1] = "مائة";
       MyArry1[2] = "مائتان";
       MyArry1[3] = "ثلاثمائة";
       MyArry1[4] = "أربعمائة";
       MyArry1[5] = "خمسمائة";
       MyArry1[6] = "ستمائة";
       MyArry1[7] = "سبعمائة";
       MyArry1[8] = "ثمانمائة";
       MyArry1[9] = "تسعمائة";

       MyArry2[0] = "";
       MyArry2[1] = " عشر";
       MyArry2[2] = "عشرون";
       MyArry2[3] = "ثلاثون";
       MyArry2[4] = "أربعون";
       MyArry2[5] = "خمسون";
       MyArry2[6] = "ستون";
       MyArry2[7] = "سبعون";
       MyArry2[8] = "ثمانون";
       MyArry2[9] = "تسعون";

       MyArry3[0] = "";
       MyArry3[1] = "واحد";
       MyArry3[2] = "اثنان";
       MyArry3[3] = "ثلاثة";
       MyArry3[4] = "أربعة";
       MyArry3[5] = "خمسة";
       MyArry3[6] = "ستة";
       MyArry3[7] = "سبعة";
       MyArry3[8] = "ثمانية";
       MyArry3[9] = "تسعة";
       //======================
       GetNo = TheNo.ToString("000000000000.00");

       i = 0;
       while (i < 15)
       {

           if (i < 12)
           {
               MyNo = GetNo.Substring(i, 3);
           }
           else
           {
               MyNo = "0" + GetNo.Substring((i + 2) - 1, 2);
           }

           if ((MyNo.Substring(0, 3)).CompareTo(0.ToString()) > 0)
           {

               RdNo = MyNo.Substring(0, 1);
               My100 = MyArry1[Convert.ToInt32(RdNo)];
               RdNo = MyNo.Substring(2, 1);
               My1 = MyArry3[Convert.ToInt32(RdNo)];
               RdNo = MyNo.Substring(1, 1);
               My10 = MyArry2[Convert.ToInt32(RdNo)];

               if (MyNo.Substring(1, 2) == 11.ToString())
               {
                   My11 = "إحدى عشر";
               }
               if (MyNo.Substring(1, 2) == 12.ToString())
               {
                   My12 = "إثنى عشر";
               }
               if (MyNo.Substring(1, 2) == 10.ToString())
               {
                   My10 = "عشرة";
               }

               if (((MyNo.Substring(0, 1)).CompareTo(0.ToString()) > 0) && ((MyNo.Substring(1, 2)).CompareTo(0.ToString()) > 0))
               {
                   My100 = My100 + MyAnd;
               }
               if (((MyNo.Substring(2, 1)).CompareTo(0.ToString()) > 0) && ((MyNo.Substring(1, 1)).CompareTo(1.ToString()) > 0))
               {
                   My1 = My1 + MyAnd;
               }

               GetTxt = My100 + My1 + My10;

               if (((MyNo.Substring(2, 1)) == 1.ToString()) && ((MyNo.Substring(1, 1)) == 1.ToString()))
               {
                   GetTxt = My100 + My11;
                   if ((MyNo.Substring(0, 1)) == 0.ToString())
                   {
                       GetTxt = My11;
                   }
               }

               if (((MyNo.Substring(2, 1)) == 2.ToString()) && ((MyNo.Substring(1, 1)) == 1.ToString()))
               {
                   GetTxt = My100 + My12;
                   if ((MyNo.Substring(0, 1)) == 0.ToString())
                   {
                       GetTxt = My12;
                   }
               }

               if ((i == 0) && (!string.IsNullOrEmpty(GetTxt)))
               {
                   if ((MyNo.Substring(0, 3)).CompareTo(10.ToString()) > 0)
                   {
                       Mybillion = GetTxt + " مليار";
                   }
                   else
                   {
                       Mybillion = GetTxt + " مليارات";
                       if ((MyNo.Substring(0, 3)) == 2.ToString())
                       {
                           Mybillion = " مليار";
                       }
                       if ((MyNo.Substring(0, 3)) == 2.ToString())
                       {
                           Mybillion = " ملياران";
                       }
                   }
               }

               if ((i == 3) && (!string.IsNullOrEmpty(GetTxt)))
               {

                   if ((MyNo.Substring(0, 3)).CompareTo(10.ToString()) > 0)
                   {
                       MyMillion = GetTxt + " مليون";
                   }
                   else
                   {
                       MyMillion = GetTxt + " ملايين";
                       if ((MyNo.Substring(0, 3)) == 1.ToString())
                       {
                           MyMillion = " مليون";
                       }
                       if ((MyNo.Substring(0, 3)) == 2.ToString())
                       {
                           MyMillion = " مليونان";
                       }
                   }
               }

               if ((i == 6) && (!string.IsNullOrEmpty(GetTxt)))
               {
                   if ((MyNo.Substring(0, 3)).CompareTo(10.ToString()) > 0)
                   {
                       MyThou = GetTxt + " ألف";
                   }
                   else
                   {
                       MyThou = GetTxt + " آلاف";
                       if ((MyNo.Substring(2, 1)) == 1.ToString())
                       {
                           MyThou = " ألف";
                       }
                       if ((MyNo.Substring(2, 1)) == 2.ToString())
                       {
                           MyThou = " ألفان";
                       }
                   }
               }

               if ((i == 9) && (!string.IsNullOrEmpty(GetTxt)))
               {
                   MyHun = GetTxt;
               }
               if ((i == 12) && (!string.IsNullOrEmpty(GetTxt)))
               {
                   MyFraction = GetTxt;
               }
           }

           i = i + 3;
       }

       if (!string.IsNullOrEmpty(Mybillion))
       {
           if ((!string.IsNullOrEmpty(MyMillion)) || (!string.IsNullOrEmpty(MyThou)) || (!string.IsNullOrEmpty(MyHun)))
           {
               Mybillion = Mybillion + MyAnd;
           }
       }

       if (!string.IsNullOrEmpty(MyMillion))
       {
           if ((!string.IsNullOrEmpty(MyThou)) || (!string.IsNullOrEmpty(MyHun)))
           {
               MyMillion = MyMillion + MyAnd;
           }
       }

       if (!string.IsNullOrEmpty(MyThou))
       {
           if (!string.IsNullOrEmpty(MyHun))
           {
               MyThou = MyThou + MyAnd;
           }
       }

       if (!string.IsNullOrEmpty(MyFraction))
       {
           if ((!string.IsNullOrEmpty(Mybillion)) || (!string.IsNullOrEmpty(MyMillion)) || (!string.IsNullOrEmpty(MyThou)) || (!string.IsNullOrEmpty(MyHun)))
           {
               tempNoToTxt = ReMark + Mybillion + MyMillion + MyThou + MyHun + " " + MyCur + MyAnd + MyFraction + " " + MySubCur;
           }
           else
           {
               tempNoToTxt = ReMark + MyFraction + " " + MySubCur;
           }
       }
       else
       {
           tempNoToTxt = ReMark + Mybillion + MyMillion + MyThou + MyHun + " " + MyCur;
       }
       return tempNoToTxt;
  }


اخوى وجدت مشكلة فى الكود 
بوص فى الصورة دى 
الكود بيقراه زى ما انت شايف 
الف وثمانمائة وسبعه وثلاثون دينار 
وتجاهل ال 9 
المفروض طبعا يكون واحد وتسعون الف وثمانمائة وسبعه وثلاثون
هو تجاهل ال 9 مش عارف ازاى 
لو تقدر تظبطها يبقي كتر خيرك 
شكراً مقدماً
الرد
تم الشكر بواسطة: asemshahen5
#8
السلام عليكم اخي الكريم
قلت لك سابقا انه ظهر لي خطأ  وتتبعته ولم اعرف السبب وتركته
اجد انه من الاجدى والافضل استخدام كود اخي عاصم جزاه الله خيرا فهو شغال 100%
وقد اختبرته وتأكدت منه
دمت بخير
الرد
تم الشكر بواسطة: asemshahen5 , maxruined , عبد العزيز البسكري
#9
(28-07-19, 09:25 PM)ابراهيم ايبو كتب :
السلام عليكم اخي الكريم
قلت لك سابقا انه ظهر لي خطأ  وتتبعته ولم اعرف السبب وتركته
اجد انه من الاجدى والافضل استخدام كود اخي عاصم جزاه الله خيرا فهو شغال 100%
وقد اختبرته وتأكدت منه
دمت بخير


ما انا بالفعل شغال بيه .. طبعاً الف مليون شكر لاخوى عاصم جزاه الله خير 

ولكن بس للمعرفه كنت عايز اعرف ايه المشكلة فى الكود بتاعك مش اكتر 
تانى مره الف شكراً لاستاذنا الكبير asemshahen5
[url=http://vb4arb.com/vb/member.php?action=profile&uid=30786][/url]
الرد
#10
السلام عليكم اخي الكريم
المشكلة محصورة عندما يكون الرقم من 5 خانات 
لي عودة اليه في وقت أخر والتحقق منه وعند حل المشكلة سأضع الكود ولن انسى ارساله لك
دمت بخير
الرد
تم الشكر بواسطة: عبد العزيز البسكري , asemshahen5



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


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