نوشته شده توسط
mina.net
سلام دوستان
ظاهرا فقط جناب linux زحمت نظر دادن را به خودشان دادن . من دارم یک ماژول دیگه طراحی می کنم با کد نویسی خیلی کمتر .
جناب linux من خوب متوجه همه قسمتهای کدی که نوشتید نشدم می شه بیشتر توضیح بدید.
منتظر برنامه کامل تر من باشید
شما تابع H را مطالعه کنید همه موارد را خواهید فهمید.
'babak bakhshayesh
'babak@bbp.ir
'1387/11/29
'ver 1.0
Imports System.Text
Public Class Heji
Private Shared adad() As String = {"صفر", "یک", "دو", "سه", "چهار", "پنج", "شش", "هفت", "هشت", "نه", "ده", "یازده", "دوازده", "سیزده", "چهارده", "پانزده", "شانزده", "هفده", "هجده", "نوزده"}
Private Shared adad2() As String = {"", "ده", "بیست", "سی", "چهل", "پنجاه", "شصت", "هفتاد", "هشتاد", "نود"}
Private Shared adad3() As String = {"", "صد", "دویست", "سیصد", "چهارصد", "پانصد", "ششصد", "هفتصد", "هشتصد", "نهصد"}
Private Shared adad4() As String = {"", "هزار", "میلیون", "میلیارد", "تریلیارد"}
Private Shared _and As String = "و"
Public Shared Function GetString(ByVal i As Integer)
' باید عدد را 3 رقم 3 رقم به تابع
'h بفرستی
Dim nums(5) As Short
Dim sb As New StringBuilder
Dim m As Short
Dim f As Boolean
Dim Counter As Byte = 0
Do While (i > 0)
m = i Mod 1000
nums(Counter) = m
i = i \ 1000
Counter += 1
Loop
For n As Short = 5 To 0 Step -1
If nums(n) <> 0 Then
f = True
If n > 0 Then
sb.Append(String.Format("{0} {1}", H(nums(n)), adad4(n)))
If nums(n - 1) <> 0 Then
sb.Append(" ") : sb.Append(_and) : sb.Append(" ")
End If
Else
If f And nums(1) = 0 Then
sb.Append(" ")
sb.Append(_and)
sb.Append(" ")
End If
sb.Append(String.Format("{0} {1}", H(nums(n)), adad4(n)))
End If
End If
Next
Return sb.ToString()
End Function
Private Shared Function H(ByVal i As Integer) As String
If i < 20 Then
Return adad(i)
End If
Dim yekan As Byte
Dim dahgan As Byte
Dim sadghan As Byte
yekan = i Mod 10
dahgan = Int(i / 10) Mod 10
sadghan = Int(i / 100) Mod 10
If yekan = 0 Then
If dahgan = 0 Then
Return adad3(sadghan)
End If
If sadghan = 0 Then
Return adad2(dahgan)
End If
Return String.Format("{0} {1} {2}", adad3(sadghan), _and, adad2(dahgan))
Else
If dahgan = 0 Or dahgan = 1 Then
Return String.Format("{0} {1} {2}", adad3(sadghan), _and, adad(dahgan * 10 + yekan))
End If
If sadghan = 0 Then
Return String.Format("{0} {1} {2}", adad2(dahgan), _and, adad(yekan))
End If
Return String.Format("{0} {1} {2} {3} {4}", adad3(sadghan), _and, adad2(dahgan), _and, adad(yekan))
End If
End Function
End Class