السلام عليكم ورحمة الله
إخواني أحتاج إلى مساعدة عاجلة في تفقيط الأرقام بلغة فيجوال بيسك 2008
عملت فورم نزلت عليه اثنين - تيكست بوكس - واحد لادخال الرقم من المستخدم والآخر لعرض القيمة
لكن واجهتني مشكلة وهي عندما أدخل رقم من واحد - تسعة يعطي نتيجة صحيحة ويشتغل الربنامج تمام
لكن عندما أدخل رقمين مثلا 22 أو 11 مباشرة يعطي خطأ InvalidCastExcepton was unhancedled
أرجو المساعدة يا إخواني والكود كامل في الأسفل قمت بنسخ كامل الكود من أوله لآخره ضمن التطبيق
------------------------------------------------------------------
Public Class Form2
Dim Letter1
Dim Letter2
Dim Letter3
Dim Letter4
Dim Letter5
Dim Letter6
Dim Result
Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Text1.TextChanged
Text2.Text = TAFKET(Val(Text1.Text))
End Sub
Public Function TAFKET(ByVal X)
Dim N = Int(X)
Dim b = SHorof(Val(Microsoft.VisualBasic.Right(Format(X, "000000000000.00"), 2)))
Dim r = SHorof(N)
If r <> " " And b >= 0 Then Result = r & " و " & b
If r <> "" And b = 0 Then Result = r
If r = "" And b <> 0 Then Result = b
TAFKET = Result
End Function
Private Function SHorof(ByVal X)
Dim N = Int(X)
Dim c = Format(N, "000000000000")
Dim LetterX = Letter1
Dim C2 = Val(Mid(c, 11, 1))
Select Case C2
Case Is = 1 : Letter2 = "عشرة"
Case Is = 2 : Letter2 = "عشرون"
Case Is = 3 : Letter2 = "ثلاثون"
Case Is = 4 : Letter2 = "أربعون"
Case Is = 5 : Letter2 = "خمسون"
Case Is = 6 : Letter2 = "ستون"
Case Is = 7 : Letter2 = "سبعون"
Case Is = 8 : Letter2 = "ثمانون"
Case Is = 9 : Letter2 = "تسعون"
End Select
Dim C1 = Val(Mid(c, 12, 1))
If C1 = 1 And C2 <> 1 Then Letter1 = "واحد"
If C1 = 2 And C2 <> 1 Then Letter1 = "اثنان"
If C1 = 3 And C2 <> 1 Then Letter1 = "ثلاثة"
If C1 = 4 And C2 <> 1 Then Letter1 = "أربعة"
If C1 = 5 And C2 <> 1 Then Letter1 = "خمسة"
If C1 = 6 And C2 <> 1 Then Letter1 = "ستة"
If C1 = 7 And C2 <> 1 Then Letter1 = "سبعة"
If C1 = 8 And C2 <> 1 Then Letter1 = "ثمانية"
If C1 = 9 And C2 <> 1 Then Letter1 = "تسعة"
If Letter1 <> "" And C2 > 1 Then Letter2 = Letter2 + "" + Letter1
If Letter2 = "" Then Letter2 = Letter1
If C1 = 0 And C2 = 1 Then Letter2 = Letter2
If C1 = 1 And C2 = 1 Then Letter2 = "أحد عشر"
If C1 = 2 And C2 = 1 Then Letter2 = "اثنى عشر"
If C1 = 3 And C2 = 1 Then Letter2 = "ثلاثة عشر"
If C1 = 4 And C2 = 1 Then Letter2 = "أربعة عشر"
If C1 = 5 And C2 = 1 Then Letter2 = "خمسة عشر"
If C1 = 6 And C2 = 1 Then Letter2 = "ستة عشر"
If C1 = 7 And C2 = 1 Then Letter2 = "سبعة عشر"
If C1 = 8 And C2 = 1 Then Letter2 = "ثمانية عشر"
If C1 = 9 And C2 = 1 Then Letter2 = "تسعة عشر"
Dim LetterXX = Letter2
If LetterXX = LetterX Then
If C1 > 2 And C2 = 1 Then Letter2 = Letter1 + "" + Letter2
Dim C3 = Val(Mid(c, 10, 1))
Select Case C3
Case Is >= 1 : Letter3 = Microsoft.VisualBasic.Left(SHorof(C3), Len(SHorof(C3))) + " مائة"
End Select
If Letter3 <> "" And Letter2 <> "" Then Letter3 = Letter3 + "و" + Letter2
Else
If C1 > 2 And C2 = 1 Then Letter2 = Letter1 + " " + Letter2
Dim C3 = Val(Mid(c, 10, 1))
Select Case C3
Case Is >= 1 : Letter3 = Microsoft.VisualBasic.Left(SHorof(C3), Len(SHorof(C3))) + " مائة"
End Select
If Letter3 <> "" And Letter2 <> "" Then Letter3 = Letter3 + " " + Letter2
End If
If Letter3 = "" Then Letter3 = Letter2
Dim C4 = Val(Mid(c, 7, 3))
Select Case C4
Case Is >= 1 : Letter4 = SHorof(C4) + " ألف"
End Select
If LetterXX = Letter3 Then
If Letter4 <> "" And Letter3 <> "" Then Letter4 = Letter4 + "و" + Letter3
If Letter4 = "" Then Letter4 = Letter3
Else
If Letter4 <> "" And Letter3 <> "" Then Letter4 = Letter4 + " " + Letter3
If Letter4 = "" Then Letter4 = Letter3
End If
Dim C5 = Val(Mid(c, 4, 3))
Select Case C5
Case Is >= 1 : Letter5 = SHorof(C5) + " مليون"
End Select
If LetterXX = Letter3 Then
If Letter5 <> "" And Letter4 <> "" Then Letter5 = Letter5 + "و" + Letter4
If Letter5 = "" Then Letter5 = Letter4
Else
If Letter5 <> "" And Letter4 <> "" Then Letter5 = Letter5 + " " + Letter4
If Letter5 = "" Then Letter5 = Letter4
End If
Dim C6 = Val(Mid(c, 1, 3))
Select Case C6
Case Is >= 1 : Letter6 = SHorof(C6) + " بليون"
End Select
If Letter6 <> "" And Letter5 <> "" Then Letter6 = Letter6 + " " + Letter5
If Letter6 = "" Then Letter6 = Letter5
SHorof = Letter6
End Function
End Class