نمایش نتایج 1 تا 34 از 34

نام تاپیک: یک ماژول برای تبدیل عدد به حروف

Hybrid View

پست قبلی پست قبلی   پست بعدی پست بعدی
  1. #1
    کاربر دائمی آواتار linux
    تاریخ عضویت
    بهمن 1381
    محل زندگی
    تهران
    پست
    2,313

    نقل قول: ادامه کار

    نقل قول نوشته شده توسط 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


  2. #2
    کاربر دائمی
    تاریخ عضویت
    شهریور 1387
    سن
    44
    پست
    634

    نقل قول: یک ماژول برای تبدیل عدد به حروف

    دوستان سلام
    خواهش می کنم این مطلب را تمام شده فرض نکنید. اگه در مورد برنامه ای که گزاشتم نظری دارید بفرمائید اعمال کنم.
    برای ادامه کار می تونیم روی اعداد اعشاری کار کنیم یعنی چطور عدد اعشاری را به حروف تبدیل کنیم . در ضمن اون کدی که برای قسمت انگلیسی برنامه نوشتم یک کمی ایراد داره اگه می شه یکی زحمت شو بکشه .ایرادش اینه که بعضی وقتا یه جاهای که باید and بزاره نمی زاره. برای راحتی کار شما لینک برنامه را دوباره می زارم تا بهتر بهش دسترسی داشته باشید.http://www.barbod87.blogfa.com/
    در ضمن اگه دوستان یک سایت فری و خوب که هر چند وقت یک بار اذیت نکونه سراغ دارن برای آپلود به من معرفی کنن ممنون می شم . اگه لینک مستقم باشه بهتر هست.

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •