منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب
مطلوب كود تفقيط الارقام للحروف ولكن للجرام والملى جرام - نسخة قابلة للطباعة

+- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb)
+-- قسم : قسم لغة الفيجوال بيسك VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=182)
+--- قسم : قسم اسئلة VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=183)
+--- الموضوع : مطلوب كود تفقيط الارقام للحروف ولكن للجرام والملى جرام (/showthread.php?tid=44139)



مطلوب كود تفقيط الارقام للحروف ولكن للجرام والملى جرام - alazhry - 21-10-22

السلام عليكم اعمل بمحل دهب واريد كود تحويل الارقام للجرام الى حروف

مخانه الملى جرام تكون ثلاثيه مثلا

10.300 تكتب عشره جرامات وثلاثمائه ملى من الجرام
10.030 تكتب عشره جرامات وثلاثون ملى من الجرام
على اساس الجرام الف ملى

ارجو انا اكون اوصلت لكم ما اريده

ارجو المساعده ضرورى


RE: مطلوب كود تفقيط الارقام للحروف ولكن للجرام والملى جرام - mrfenix93 - 21-10-22

اخي الكريم 

هذا الكود سوف يعمل معك 
وتم تعديلة حتي يعمل معك بنجاح 
ان شاء الله 

كود :
Public Function NoToTxt(ByVal TheNo As Double) As String
       '======================

       If TheNo > 999999999999.999 Then
           NoToTxt = ""
           Exit Function
       End If

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

       Dim MyNo, GetNo, RdNo, GetTxt, ReMark As String
       Dim My100, My10, My1, My11, My12 As String
       Dim Mybillion, MyMillion As String
       Dim MyThou, MyHun, MyFraction As String
       Dim MyArry1(9) As String
       Dim MyArry2(9) As String
       Dim MyArry3(9) As String
       Dim MyAnd As String
       '======================
       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.000")

       '======================
       Dim i As Integer
       For i = 0 To 14 Step 3

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

               MyNo = Mid$(GetNo, i + 2, 3)

           End If

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

               RdNo = Mid$(MyNo, 1, 1)
               My100 = MyArry3(RdNo)
               RdNo = Mid$(MyNo, 3, 1)
               My1 = MyArry1(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
       Next

       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 + " " + "جرامات" + MyAnd + MyFraction + " " + "ملى من الجرام"
           Else
               NoToTxt = ReMark + MyFraction + " " + "ملى من الجرام"
           End If
       Else
           NoToTxt = ReMark + Mybillion + MyMillion + MyThou + MyHun + " " + "جرامات"
       End If

   End Function


ضع هذا في ال 
Module1
ثم استدعيه بهذا الكود

كود :
TextBox2.Text = NoToTxt(TextBox1.Text)



RE: مطلوب كود تفقيط الارقام للحروف ولكن للجرام والملى جرام - Taha Okla - 22-10-22

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

هذا كود  : تفقط  الأوزان 
وبـ ثلاث وحدات ليكون منطقي أكثر ..