15-11-19, 08:25 PM
السلام عليكم ورحمة الله وبركاته
أخي كودك ربما يكون معقد قليلآ والي فهمتو منك تريد تحول من رقم الى رقم كتابة ,, بصراحة كنت ناوي اعطيك فكرة اسهل وبدون تعقيد لكن وجدت الامر ممتع واكملت لك كود الى حد 9999 لكن المهم بالكود هو الفكرة التي اعطيتك هي اظنها ابسط من فكرتك وامكانية تطويرها بسهولة وايضآ يقل التعقيد بزيادة الاعداد
هذا هو الكود
الان لو وضعت اثنان تكست بوكس وكتبت الكود التالي
سوف يعطيك النتيجة ان شاء الله
أخي كودك ربما يكون معقد قليلآ والي فهمتو منك تريد تحول من رقم الى رقم كتابة ,, بصراحة كنت ناوي اعطيك فكرة اسهل وبدون تعقيد لكن وجدت الامر ممتع واكملت لك كود الى حد 9999 لكن المهم بالكود هو الفكرة التي اعطيتك هي اظنها ابسط من فكرتك وامكانية تطويرها بسهولة وايضآ يقل التعقيد بزيادة الاعداد
هذا هو الكود
كود :
Dim Nf As String = "صفر,واحد,اثنان,ثلاثة,اربعة,خمسة,ستة,سبعة,ثمانية,تسعة"
Dim N2 As String = "عشرون,ثلاثون,اربعون,خمسون,ستون,سبعون,ثمانون,تسعون"
Dim Nm As String = "مائة,مئتان,ثلاث مائة,أربع مائة,خمس مائة,ست مائة,سبع مائة,ثمان مائة,تسع مائة"
Dim Nt As String = "الف,الفان,ثلاثة الف,أربعة الف,خمسة الف,ستة الف,سبعة الف,ثمانية الف,تسعة الف"
Function Tran(ByVal i As Integer) As String
Dim Count As Integer = i.ToString.Length
Select Case Count
Case 1
Return Nf.Split(",")(i)
Case 2
If i.ToString.Chars(0).ToString > 1 Then
If i.ToString.Chars(1) = "0" Then
Return N2.Split(",")(i.ToString.Chars(0).ToString - 2)
Else
Return Nf.Split(",")(i.ToString.Chars(1).ToString) & " و " & N2.Split(",")(i.ToString.Chars(0).ToString - 2)
End If
ElseIf i.ToString.Chars(0).ToString = 1 Then
If i.ToString.Chars(1) = "0" Then
Return "عشرة"
ElseIf i.ToString.Chars(1) = "1" Then
Return "إحدى عشر"
ElseIf i.ToString.Chars(1) = "2" Then
Return "إثنى عشر"
Else
Return Nf.Split(",")(i.ToString.Chars(1).ToString) & " " & "عشر"
End If
End If
Case 3
If i.ToString.Chars(1).ToString = "0" And i.ToString.Chars(2).ToString = "0" Then
Return Nm.Split(",")(i.ToString.Chars(0).ToString - 1)
End If
If i.ToString.Chars(1).ToString = "0" Then
Return Nm.Split(",")(i.ToString.Chars(0).ToString - 1) & " و " & Tran(i.ToString.Chars(2).ToString)
End If
Return Nm.Split(",")(i.ToString.Chars(0).ToString - 1) & " و " & Tran(i.ToString.Remove(0, 1))
Case 4
If i.ToString.Chars(1).ToString = "0" And i.ToString.Chars(2).ToString = "0" And i.ToString.Chars(3).ToString = "0" Then
Return Nt.Split(",")(i.ToString.Chars(0).ToString - 1)
End If
If i.ToString.Chars(1).ToString = "0" Then
Return Nt.Split(",")(i.ToString.Chars(0).ToString - 1) & " و " & Tran(i.ToString.Remove(0, 2))
End If
Return Nt.Split(",")(i.ToString.Chars(0).ToString - 1) & " و " & Tran(i.ToString.Remove(0, 1))
End Select
End Functionالان لو وضعت اثنان تكست بوكس وكتبت الكود التالي
كود :
TextBox2.Text = Tran(TextBox1.Text)سوف يعطيك النتيجة ان شاء الله

