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

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

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

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

    سلام دوستان
    یک ماژول برای تبدیل عدد به حروف طراحی کردم که برای برنامه های حسابداری خیلی کابرد دارد . دوستان برنامه را ببینید و نظر بدهید تا بهتر شود. برای دانلود کلیک کنید.
    http://www.barbod87.blogfa.com/post-7.aspx

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

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

    نقل قول نوشته شده توسط mina.net مشاهده تاپیک
    سلام دوستان
    یک ماژول برای تبدیل عدد به حروف طراحی کردم که برای برنامه های حسابداری خیلی کابرد دارد . دوستان برنامه را ببینید و نظر بدهید تا بهتر شود. برای دانلود کلیک کنید.
    http://www.barbod87.blogfa.com/post-7.aspx
    می تونی بهترش کنی ، خلاصه تر و مفید تر
    شما این عدد را چطور می خوانی 12،345؟
    اول از سمت راست 3 رقم 3 رقم جدا می کنی ، با این کار جایگاه اعداد بدست می آید بعدش هر گروه را جدا خوانده و ارزش مکانی آن گروه را در آخر ذکر می کنید.
    12 هزار و 345 شما اگر یک تابع داشته باشید که فقط 3 رقم را بخواند کافیست یعنی از عدد 0 تا 999 -
    پس یک تابع درست کنید که فقط این اعداد را بگیرد.
    یک آرایه درست کنید که این اعداد را سه رقم 3 رقم در آن ذخیره کند .
    به ترتیب آرایه را به این تابع فرستاده برگشتی تابع را با توجه به مکان آن هجی کنید


    Public Class Heji
    Private Shared adad() As String = {"صفر", "یک", "دو", "سه", "چهار", "پنج", "شش", "هفت", "هشت", "نه", "ده", "یازده", "دوازده", "سیزده", "چهارده", "پانزده", "شانزده", "هفده", "هجده", "نوزده"}
    Private Shared adad2() As String = {"", "ده", "بیست", "سی", "چهل", "پنجاه", "شصت", "هفتاد", "هشتاد", "نود"}
    Private Shared adad3() As String = {"", "صد", "دویست", "سیصد", "چهارصد", "پانصد", "ششصد", "هفتصد", "هشتصد", "نهصد"}

    Public Shared Function GetString(ByVal i As Integer)

    ' باید عدد را 3 رقم 3 رقم به تابع
    'h بفرستی

    Return Nothing
    End Function
    Private Shared Function H(ByVal i As Integer) As String
    Dim _and 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


    حوصله ام نکشید که کلاس را تمام کنم یک سال بیشتر بود با ویبی برنامه ننوشته بودم گفتن برای اینکه یادم نرود این را بنویسم
    آخرین ویرایش به وسیله linux : چهارشنبه 23 بهمن 1387 در 22:50 عصر

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

    ادامه کار

    سلام دوستان
    ظاهرا فقط جناب linux زحمت نظر دادن را به خودشان دادن . من دارم یک ماژول دیگه طراحی می کنم با کد نویسی خیلی کمتر .
    جناب linux من خوب متوجه همه قسمتهای کدی که نوشتید نشدم می شه بیشتر توضیح بدید.
    منتظر برنامه کامل تر من باشید

  4. #4

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

    We work in the dark, we do what we can, we give what we have.
    Our doubt is our passion and our passion is our task.
    The rest is the madness of art

  5. #5
    کاربر دائمی آواتار nokhodsiah2001
    تاریخ عضویت
    اردیبهشت 1386
    محل زندگی
    مشهد
    پست
    222

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

    سلام
    من این کد رو فکر کنم تو همین سایت دیدم و یک مثال براش ساختم (vs2005) به امتحانش می ارزه
    فایل های ضمیمه فایل های ضمیمه

  6. #6
    مدیر بخش آواتار salehbagheri
    تاریخ عضویت
    خرداد 1386
    محل زندگی
    In Hearts
    سن
    34
    پست
    2,225

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

    یک ماژول برای تبدیل عدد به حروف طراحی کردم که برای برنامه های حسابداری خیلی کابرد دارد . دوستان برنامه را ببینید و نظر بدهید تا بهتر شود. برای دانلود کلیک کنید.
    دوست عزيز! ماژول شما مشكل داره! عدد 1000000000 رو به صورت "يك ميليارد ميليون هزار" نشون ميده! در حالي كه بايد يك ميليارد نشون بده!

    مهندس! اعداد فارسي كجا و انگليسي كجا!!!

    به زودي ماژول خودم رو براتون ميذارم كه بدون مشكله! (انشاءالله)
    امیدم به دستان زیبای اوست . آنکه می آید . همان که نامش منجی ست ....

    به راستی اگر غرق نبودیم چرا مارا به منجی ای نیازمند کرده اند؟ ... دنیا دریاست ....

    دلنوشته های من


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

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

    نقل قول نوشته شده توسط salehbagheri مشاهده تاپیک
    دوست عزيز! ماژول شما مشكل داره! عدد 1000000000 رو به صورت "يك ميليارد ميليون هزار" نشون ميده! در حالي كه بايد يك ميليارد نشون بده!



    مهندس! اعداد فارسي كجا و انگليسي كجا!!!

    به زودي ماژول خودم رو براتون ميذارم كه بدون مشكله! (انشاءالله)
    سلام دوستان
    همان طور که جناب salehbagheri گفتند ماژول من دارای ایراداتی است. که الان دیگه برطرفش کردم. اما برنامه من با 2008 هست. به 2005 تبدیلش می کنم که همه بتونن استفاده کنن.البته ایندفعه هم انگلیسی داره هم فارسی.
    منتظر باشید

  8. #8
    مدیر بخش آواتار salehbagheri
    تاریخ عضویت
    خرداد 1386
    محل زندگی
    In Hearts
    سن
    34
    پست
    2,225

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

    دوست عزيز! ببخشيد كه پيش دستي كردم!

    اين هم يك كد تبديل عدد به حروف! قابليت تبديل اعداد به فارسي تا 18 رقم!

    فعلا كه مشكلي نداره! اگه يافتيد باخبرم كنيد!

    با تشكر!
    فایل های ضمیمه فایل های ضمیمه
    امیدم به دستان زیبای اوست . آنکه می آید . همان که نامش منجی ست ....

    به راستی اگر غرق نبودیم چرا مارا به منجی ای نیازمند کرده اند؟ ... دنیا دریاست ....

    دلنوشته های من


  9. #9
    مدیر بخش آواتار salehbagheri
    تاریخ عضویت
    خرداد 1386
    محل زندگی
    In Hearts
    سن
    34
    پست
    2,225

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

    با امكانات بيشتر Update شد!
    https://barnamenevis.org/showpo...9&postcount=22

    دوستان اگر در مورد اضافه كردن امكانات بيشتر، نظر يا پيشنهادي دارند بفرمايند!
    امیدم به دستان زیبای اوست . آنکه می آید . همان که نامش منجی ست ....

    به راستی اگر غرق نبودیم چرا مارا به منجی ای نیازمند کرده اند؟ ... دنیا دریاست ....

    دلنوشته های من


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

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

    نقل قول نوشته شده توسط salehbagheri مشاهده تاپیک
    دوست عزيز! ببخشيد كه پيش دستي كردم!

    اين هم يك كد تبديل عدد به حروف! قابليت تبديل اعداد به فارسي تا 18 رقم!

    فعلا كه مشكلي نداره! اگه يافتيد باخبرم كنيد!

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

  11. #11
    کاربر دائمی آواتار 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


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

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

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

  13. #13
    مدیر بخش آواتار salehbagheri
    تاریخ عضویت
    خرداد 1386
    محل زندگی
    In Hearts
    سن
    34
    پست
    2,225

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

    دوست عزيز! وبلاگت باز نميشه! چيكار كنيم!

    برای ادامه کار می تونیم روی اعداد اعشاری کار کنیم یعنی چطور عدد اعشاری را به حروف تبدیل کنیم .
    پيشنهاد خوبيه! من كه به زودي دست بكار ميشم!

    در ضمن اگه دوستان یک سایت فری و خوب که هر چند وقت یک بار اذیت نکونه سراغ دارن برای آپلود به من معرفی کنن ممنون می شم . اگه لینک مستقم باشه بهتر هست.
    اگر جيميل (Gmail) داريد ميتونيد در اونجا آپلود كنيد! لينكش هم مستقيمه!
    امیدم به دستان زیبای اوست . آنکه می آید . همان که نامش منجی ست ....

    به راستی اگر غرق نبودیم چرا مارا به منجی ای نیازمند کرده اند؟ ... دنیا دریاست ....

    دلنوشته های من


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

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

    نقل قول نوشته شده توسط salehbagheri مشاهده تاپیک
    دوست عزيز! وبلاگت باز نميشه! چيكار كنيم!



    پيشنهاد خوبيه! من كه به زودي دست بكار ميشم!



    اگر جيميل (Gmail) داريد ميتونيد در اونجا آپلود كنيد! لينكش هم مستقيمه!
    دوست عزیز من خودم روی لینکی گذاشتم کلیک می کنم باز می شه نمی دونم شما چرا مشکل دارید. و در مورد gmail که گفتی من نمی دونم تو gimal چطور باید upload کنم. اگه می تونید تو یک پیام خصوصی برای من توضیح بدید یا هر کسی که می تونه یه من کمک کنه.

  15. #15
    کاربر دائمی آواتار mostafaaa
    تاریخ عضویت
    دی 1386
    محل زندگی
    جزیره کیش
    پست
    723

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

    سلام دوستان من
    منهم قبلا كلاسي براي تبديل اعداد به حروف نوشته بودم كه در كامپوترم داشت خاك ميخورد ، تلاش دوستان رو ديدم گفتم اينجا بزارمش شايد به درد دوستان بخوره. بيشتر سعي كردم مختصر بنويسمش كه كمتر از 70 خط كد نشد. اميدوارم به دردتون بخوره و مشكلي نداشته باشه :
    Public Class NumToStr
    Private Class Numbers
    Public intNum As Integer
    Public strNum As String
    Sub New(ByVal int As Integer, ByVal str As String)
    intNum = int
    strNum = str
    End Sub
    End Class
    Private listOFNumbers() As Numbers = {New Numbers(1, "يك"), New Numbers(2, "دو"), New Numbers(3, "سه"), New Numbers(4, "چهار"), New Numbers(5, "پنج"), New Numbers(6, "شش") _
    , New Numbers(7, "هفت"), New Numbers(8, "هشت"), New Numbers(9, "نه"), New Numbers(10, "ده"), New Numbers(11, "يازده"), New Numbers(12, "دوازده") _
    , New Numbers(13, "سيزده"), New Numbers(14, "چهارده"), New Numbers(15, "پانزده"), New Numbers(16, "شانزده"), New Numbers(17, "هفده"), New Numbers(18, "هجده") _
    , New Numbers(19, "نوزده"), New Numbers(20, "بيست"), New Numbers(30, "سي"), New Numbers(40, "چهل"), New Numbers(50, "پنجاه"), New Numbers(60, "شصت"), New Numbers(70, "هفتاد") _
    , New Numbers(80, "هشتاد"), New Numbers(90, "نود"), New Numbers(100, "صد"), New Numbers(200, "دويست"), New Numbers(300, "سيصد"), New Numbers(400, "چهارصد"), New Numbers(500, "پانصد") _
    , New Numbers(600, "ششصد"), New Numbers(700, "هفتصد"), New Numbers(800, "هشتصد"), New Numbers(900, "نهصد")}
    Public Function GetStringOfNumber(ByVal num As Long) As String
    Dim Part() As String = Split(FormatNumber(num, 0), ",")
    Select Case Part.Length
    Case Is = 1 And Not CInt(Part(0)) = 0
    Return GetThree(Part(0))
    Case Is = 2
    If CInt(Part(1)) = 0 Then
    Return GetThree(Part(0)) & " هزار " : Else
    Return GetThree(Part(0)) & " هزار و " & GetThree(Part(1))
    End If
    Case Is = 3
    If CInt(Part(1)) + CInt(Part(2)) = 0 Then
    Return GetThree(Part(0)) & " ميليون " : Else
    Return GetThree(Part(0)) & " ميليون و " & GetStringOfNumber(Part(1) & Part(2))
    End If
    Case Is = 4
    If CInt(Part(1)) + CInt(Part(2)) + CInt(Part(3)) = 0 Then
    Return GetThree(Part(0)) & " ميليارد " : Else
    Return GetThree(Part(0)) & " ميليارد و " & GetStringOfNumber(Part(1) & Part(2) & Part(3))
    End If
    Case Is = 5
    If CInt(Part(1)) + CInt(Part(2)) + CInt(Part(3)) + CInt(Part(4)) = 0 Then
    Return GetThree(Part(0)) & " بيليارد " : Else
    Return GetThree(Part(0)) & " بيليارد و " & GetStringOfNumber(Part(1) & Part(2) & Part(3) & Part(4))
    End If
    End Select
    Return Nothing
    End Function
    Private Function GetThree(ByVal Num As Integer) As String
    Dim Str As String = Num.ToString
    Select Case Str.Length
    Case Is = 1
    Return Search(Num)
    Case Is = 2
    If Str.Substring(0, 1) = 1 Or Str.Substring(1, 1) = "0" Then
    Return Search(Num) : Else
    Return Search(Str.Substring(0, 1) & "0") & " و " & Search(Str.Substring(1, 1))
    End If
    Case Is = 3
    If Str.Substring(1, 2) = "00" Then
    Return Search(Num) : Else
    Return Search(Str.Substring(0, 1) & "00") & " و " & GetThree(Str.Substring(1, 2))
    End If
    End Select
    Return Nothing
    End Function
    Private Function Search(ByVal Num As Integer) As String
    For i As Integer = 0 To listOFNumbers.Length - 1
    If listOFNumbers(i).intNum = Num Then Return listOFNumbers(i).strNum
    Next
    Return Nothing
    End Function
    End Class

    يا علي
    آخرین ویرایش به وسیله mostafaaa : جمعه 02 اسفند 1387 در 17:28 عصر دلیل: اصلاح بخشي از كد

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

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

    نقل قول نوشته شده توسط mostafaaa مشاهده تاپیک
    سلام دوستان من
    منهم قبلا كلاسي براي تبديل اعداد به حروف نوشته بودم كه در كامپوترم داشت خاك ميخورد ، تلاش دوستان رو ديدم گفتم اينجا بزارمش شايد به درد دوستان بخوره. بيشتر سعي كردم مختصر بنويسمش كه كمتر از 70 خط كد نشد. اميدوارم به دردتون بخوره و مشكلي نداشته .... End Function
    End Class
    [/code]يا علي
    چکاری هست که عدد را تبدیل به استرینگ کنید و بعدش روش پردازش انجام بدهید!
    کار کردن رو اعداد که به مراتب سریعتر و راحتر هست.

  17. #17
    کاربر دائمی آواتار mostafaaa
    تاریخ عضویت
    دی 1386
    محل زندگی
    جزیره کیش
    پست
    723

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

    سلام دوست من
    چکاری هست که عدد را تبدیل به استرینگ کنید و بعدش روش پردازش انجام بدهید!
    کار کردن رو اعداد که به مراتب سریعتر و راحتر هست.
    در این نمونه خاص فرقی نمیکه!
    پردازش به قدری پایینه که عملا فرقی نمیکنه!
    من بیشتر به جنبه راحتی و کم بودن کد توجه کرده بودم، علاوه بر اون اینکه ، همانطور که گفتم من این کلاس رو خیلی وقت پیش نوشته بودم.
    شما اگه دوست داری میتونی اصلاحش کنی بزاری دوستان استفاده کنند
    یا علی

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

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

    نقل قول نوشته شده توسط mostafaaa مشاهده تاپیک
    سلام دوست من

    در این نمونه خاص فرقی نمیکه!
    پردازش به قدری پایینه که عملا فرقی نمیکنه!
    من بیشتر به جنبه راحتی و کم بودن کد توجه کرده بودم، علاوه بر اون اینکه ، همانطور که گفتم من این کلاس رو خیلی وقت پیش نوشته بودم.
    شما اگه دوست داری میتونی اصلاحش کنی بزاری دوستان استفاده کنند
    یا علی
    من کلاسی که نوشتم 3-4 پست بالاتر هست ، البته فکر کنم یک اشکال داره. کلا عملیات ریاضی سریعتر انجام می شود.

  19. #19
    کاربر دائمی آواتار mostafaaa
    تاریخ عضویت
    دی 1386
    محل زندگی
    جزیره کیش
    پست
    723

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

    سلام دوست من
    اینم ریاضیش :
    Public Class NumToStr
    Private Class Numbers
    Public intNum As Integer
    Public strNum As String
    Sub New(ByVal int As Integer, ByVal str As String)
    intNum = int
    strNum = str
    End Sub
    End Class
    Private listOFNumbers() As Numbers = {New Numbers(1, "يك"), New Numbers(2, "دو"), New Numbers(3, "سه"), New Numbers(4, "چهار"), New Numbers(5, "پنج"), New Numbers(6, "شش") _
    , New Numbers(7, "هفت"), New Numbers(8, "هشت"), New Numbers(9, "نه"), New Numbers(10, "ده"), New Numbers(11, "يازده"), New Numbers(12, "دوازده") _
    , New Numbers(13, "سيزده"), New Numbers(14, "چهارده"), New Numbers(15, "پانزده"), New Numbers(16, "شانزده"), New Numbers(17, "هفده"), New Numbers(18, "هجده") _
    , New Numbers(19, "نوزده"), New Numbers(20, "بيست"), New Numbers(30, "سي"), New Numbers(40, "چهل"), New Numbers(50, "پنجاه"), New Numbers(60, "شصت"), New Numbers(70, "هفتاد") _
    , New Numbers(80, "هشتاد"), New Numbers(90, "نود"), New Numbers(100, "صد"), New Numbers(200, "دويست"), New Numbers(300, "سيصد"), New Numbers(400, "چهارصد"), New Numbers(500, "پانصد") _
    , New Numbers(600, "ششصد"), New Numbers(700, "هفتصد"), New Numbers(800, "هشتصد"), New Numbers(900, "نهصد")}
    Public Function GetStringOfNumber(ByVal num As Long) As String
    Dim Part() As String = Split(FormatNumber(num, 0), ",")
    Select Case Part.Length
    Case Is = 1 And Not CInt(Part(0)) = 0
    Return GetThree(Part(0))
    Case Is = 2
    If CInt(Part(1)) = 0 Then
    Return GetThree(Part(0)) & " هزار " : Else
    Return GetThree(Part(0)) & " هزار و " & GetThree(Part(1))
    End If
    Case Is = 3
    If CInt(Part(1)) + CInt(Part(2)) = 0 Then
    Return GetThree(Part(0)) & " ميليون " : Else
    Return GetThree(Part(0)) & " ميليون و " & GetStringOfNumber(Part(1) & Part(2))
    End If
    Case Is = 4
    If CInt(Part(1)) + CInt(Part(2)) + CInt(Part(3)) = 0 Then
    Return GetThree(Part(0)) & " ميليارد " : Else
    Return GetThree(Part(0)) & " ميليارد و " & GetStringOfNumber(Part(1) & Part(2) & Part(3))
    End If
    Case Is = 5
    If CInt(Part(1)) + CInt(Part(2)) + CInt(Part(3)) + CInt(Part(4)) = 0 Then
    Return GetThree(Part(0)) & " بيليارد " : Else
    Return GetThree(Part(0)) & " بيليارد و " & GetStringOfNumber(Part(1) & Part(2) & Part(3) & Part(4))
    End If
    End Select
    Return Nothing
    End Function
    Private Function GetThree(ByVal Num As Integer) As String
    Select Case Num
    Case Is < 10
    Return Search(Num)
    Case Is < 100
    If Num <= 20 Or (Num Mod 10) = 0 Then
    Return Search(Num) : Else
    Return Search((Math.Floor(Num / 10)) * 10) & " و " & Search(Num - ((Math.Floor(Num / 10)) * 10))
    End If
    Case Is < 1000
    If Num Mod 100 = 0 Then
    Return Search(Num) : Else
    Return Search((Math.Floor(Num / 100)) * 100) & " و " & GetThree(Num - ((Math.Floor(Num / 100)) * 100))
    End If
    End Select
    Return Nothing
    End Function
    Private Function Search(ByVal Num As Integer) As String
    For i As Integer = 0 To listOFNumbers.Length - 1
    If listOFNumbers(i).intNum = Num Then Return listOFNumbers(i).strNum
    Next
    Return Nothing
    End Function
    End Class

  20. #20
    مدیر بخش آواتار salehbagheri
    تاریخ عضویت
    خرداد 1386
    محل زندگی
    In Hearts
    سن
    34
    پست
    2,225

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

    سلام دوستان!

    من كه به كلي گيج شدم!

    ترتيب درست پسوندهاي عددي به چه صورت هست؟
    • هزار - ميليون - ميليارد - بيليون - بيليارد - تريليون - تيليارد - ...
    • هزار - ميليون - ميليارد - بيليارد - بيليون - ...
    • هزار - ميليون - ميليارد - بيليون - تريليون - ...
    امیدم به دستان زیبای اوست . آنکه می آید . همان که نامش منجی ست ....

    به راستی اگر غرق نبودیم چرا مارا به منجی ای نیازمند کرده اند؟ ... دنیا دریاست ....

    دلنوشته های من


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

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

    نقل قول نوشته شده توسط salehbagheri مشاهده تاپیک
    سلام دوستان!

    من كه به كلي گيج شدم!

    ترتيب درست پسوندهاي عددي به چه صورت هست؟
    • هزار - ميليون - ميليارد - بيليون - بيليارد - تريليون - تيليارد - ...
    • هزار - ميليون - ميليارد - بيليارد - بيليون - ...
    • هزار - ميليون - ميليارد - بيليون - تريليون - ...

    از اینجا می توانی ببینی http://en.wikipedia.org/wiki/SI_prefix

  22. #22
    کاربر دائمی آواتار mostafaaa
    تاریخ عضویت
    دی 1386
    محل زندگی
    جزیره کیش
    پست
    723

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

    سلام دوستان
    البته یک چیز رو فراموش نکنید!!
    milliard, billion, number equal to a thousand millions, 1 000 000 000 (in the USA and France); number equal to a million millions, 1 000 000 000 000 (in Britain)
    billion,number equal to a thousand millions, 1 000 000 000 (in the USA and France); number equal to a million millions, 1 000 000 000 000 (in Britain)
    trillion, number equaling one thousand billions; one followed by 12 zeros (in the U.S. and France); one followed by 18 zeros (in Great Britain and Germany)
    و الا آخر ...
    تقریبا تمامی این نام ها هم در سیستم انگلیسی و هم آمریکایی مشابه هستند ولی مقادیر متفاوته!!
    یا علی

  23. #23
    مدیر بخش آواتار salehbagheri
    تاریخ عضویت
    خرداد 1386
    محل زندگی
    In Hearts
    سن
    34
    پست
    2,225

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

    تقریبا تمامی این نام ها هم در سیستم انگلیسی و هم آمریکایی مشابه هستند ولی مقادیر متفاوته!!
    دوست عزيز! سيستم آمريكا و انگليس رو بي خيال! سيستم فارسي چه جوريه؟!!
    امیدم به دستان زیبای اوست . آنکه می آید . همان که نامش منجی ست ....

    به راستی اگر غرق نبودیم چرا مارا به منجی ای نیازمند کرده اند؟ ... دنیا دریاست ....

    دلنوشته های من


  24. #24
    کاربر دائمی آواتار mostafaaa
    تاریخ عضویت
    دی 1386
    محل زندگی
    جزیره کیش
    پست
    723

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

    سلام دوست من
    ما چیزی به اسم سیستم فارسی نداریم ولی در اکثر مواقع توی ایران ملاک سیستم آمریکایی هستش.

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

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

    نقل قول نوشته شده توسط mostafaaa مشاهده تاپیک
    سلام دوست من
    ما چیزی به اسم سیستم فارسی نداریم ولی در اکثر مواقع توی ایران ملاک سیستم آمریکایی هستش.
    سلام دوستان چرا داین قد به سیستم امریکای انگلیسی گیر دادید اگه یکی وقت داره برنامه را برای اعداد با اعشاری تکمیل کنه فکر کنم بهتره اون موضوعی شما راجع بهش بحث می کنید در صلاحیت یک استاد زبان انگلیسی و ریاضی هست که با یک پرسش حل می شه دوستان اگه یک منبع قابل اعتماد دارند بپرسن و اینجا بزارن تا پرونده امریکای انگلیسی بسته بشه.
    بد میگم؟؟

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

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

    نقل قول نوشته شده توسط mina.net مشاهده تاپیک
    سلام دوستان چرا داین قد به سیستم امریکای انگلیسی گیر دادید اگه یکی وقت داره برنامه را برای اعداد با اعشاری تکمیل کنه فکر کنم بهتره اون موضوعی شما راجع بهش بحث می کنید در صلاحیت یک استاد زبان انگلیسی و ریاضی هست که با یک پرسش حل می شه دوستان اگه یک منبع قابل اعتماد دارند بپرسن و اینجا بزارن تا پرونده امریکای انگلیسی بسته بشه.
    بد میگم؟؟
    برای اعداد اعشاری معمولا : دهم ، صدم و هزارم مورد استفاده هست که با همین کدی که من نوشتم با کمی تغییرات می توانید بسازید

  27. #27

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

    آقا linux کسی انجامش نداده.خودت زحمتشو بکش

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

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

    نقل قول نوشته شده توسط linux مشاهده تاپیک
    برای اعداد اعشاری معمولا : دهم ، صدم و هزارم مورد استفاده هست که با همین کدی که من نوشتم با کمی تغییرات می توانید بسازید
    جناب LINUX سلام
    فکر می کنم غیر از کدی که شما گذاشتید چند برنامه دیگه هم بچه های دیگه اینجا گذاشتند. فکر می کنم وقتش شده یک حرکت جدیدی انجام بدید . من خیلی وقت ندارم این روزها اما اگر شما انجام ندادید من با کمی تاخیر حتما انجام می دم.

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

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

    سلام دوستان
    راستی کسی برای اعداد اعشاری نمی خواد کاری انجام بده.

  30. #30
    کاربر دائمی آواتار anooshiran
    تاریخ عضویت
    بهمن 1386
    محل زندگی
    تهران anoosh_resha@yahoo.com
    پست
    576

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

    نقل قول نوشته شده توسط salehbagheri مشاهده تاپیک
    سلام دوستان!

    من كه به كلي گيج شدم!



    ترتيب درست پسوندهاي عددي به چه صورت هست؟
    • هزار - ميليون - ميليارد - بيليون - بيليارد - تريليون - تيليارد - ...
    • هزار - ميليون - ميليارد - بيليارد - بيليون - ...
    • هزار - ميليون - ميليارد - بيليون - تريليون - ...

    سلام دوستان عزيز

    براي خواندن اعداد خيلي بزرگ بايد از استاندارد رايج بين المللي استفاده كنيم.اين استاندارد از ريشه هاي واژه هاي لاتيني ، يا زبانهاي ديگر اروپايي براي اعداد يزرگ انتخاب گرديده است.
    استاندارد زير رايجترين استاندارد نامگذاري حروف در جهان است كه فرهنگستان زبان پارسي نيز آن را پذيرفته است . در ذيل نوع خواندن صحيح اعداد و چرايي اينگونه نامگذاري را توضيح داده ام.

    اميدوارم كه مورد استفاده دوستان قرار گيرد.


    يك ميليون Million 1,000,000

    در زبان لاتين mile به معني هزار به كار رفته است. يك ميليون يك دسته سه تايي صفر بيشتر از هزار دارد.

    يك بيليون Billion 1,000,000,000

    در بعضي از كشورها اين عدد را ميليارد (Milliard ) مي نامند. در زبان لاتين bi به معناي دو است. يك بيليون دو دسته سه تايي صفر بيشتر از هزار دارد.

    يك تريليون Trillion 1,000,000,000,000

    در زبان لاتين tri به معناي سه است. يك تريليون سه دسته سه تايي صفر بيشتر از هزار دارد.

    و به همين ترتيب :

    كادريليون Quadrillion , quad = 4

    كنتيليون Quintillion , quint = 5

    سيكستيليون Sixtillion , six = 6

    سپتيليون Septillion , sept = 7


    اَُكتيليون Octillion , oct = 8


    نونيليون Nonillion , non = 9


    دسيليون Decillion , dec = 10




  31. #31
    کاربر دائمی آواتار shahab_ss
    تاریخ عضویت
    فروردین 1384
    محل زندگی
    bangkok
    سن
    43
    پست
    434

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

    این نمونه رو هم ببینید،
    فایل های ضمیمه فایل های ضمیمه

  32. #32

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

    کسی نتوانست تبدیل عدد اعشاری به حروف را بدست بیاورد .

  33. #33

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

    با سلام به دوستان جدید و قدیم
    در طی این 5 سال گذشته کمتر فرصت شد که به سایت سر بزنم. چند روز پیش که این کد رو دیدم تصمیم گرفتم برای نیاز خودم هم که شده قسمت اعشار رو بهش اضافه کنم. البته سورس دیگری نیز از دوست خوبم آقای بابک بخشایش هست که اونم با کمی تغییر این قابلیت رو دارد.
    کد زیر را می توان بهینه تر نیز کرد. مثلا کنترل عدم وجود دو علامت "." برای ارقام اعشاری
    انشالله که مفید واقع شود

    Public Class NumToStr1
    Private Class Numbers
    Public intNum As Integer
    Public strNum As String
    Sub New(ByVal int As Integer, ByVal str As String)
    intNum = int
    strNum = str
    End Sub
    End Class
    Private listOFNumbers() As Numbers = {New Numbers(0, "صفر"), New Numbers(1, "يك"), New Numbers(2, "دو"), New Numbers(3, "سه"), New Numbers(4, "چهار"), New Numbers(5, "پنج"), New Numbers(6, "شش") _
    , New Numbers(7, "هفت"), New Numbers(8, "هشت"), New Numbers(9, "نه"), New Numbers(10, "ده"), New Numbers(11, "يازده"), New Numbers(12, "دوازده") _
    , New Numbers(13, "سيزده"), New Numbers(14, "چهارده"), New Numbers(15, "پانزده"), New Numbers(16, "شانزده"), New Numbers(17, "هفده"), New Numbers(18, "هجده") _
    , New Numbers(19, "نوزده"), New Numbers(20, "بيست"), New Numbers(30, "سي"), New Numbers(40, "چهل"), New Numbers(50, "پنجاه"), New Numbers(60, "شصت"), New Numbers(70, "هفتاد") _
    , New Numbers(80, "هشتاد"), New Numbers(90, "نود"), New Numbers(100, "یکصد"), New Numbers(200, "دويست"), New Numbers(300, "سيصد"), New Numbers(400, "چهارصد"), New Numbers(500, "پانصد") _
    , New Numbers(600, "ششصد"), New Numbers(700, "هفتصد"), New Numbers(800, "هشتصد"), New Numbers(900, "نهصد")}
    Private listOfDesimals() As String = {" دهم", " صدم", " هزارم"}
    Dim isdes As Boolean = False
    Public Function GetStringOfNumber(ByVal num) As String
    Dim dot As Int32 = 0
    Dim des As Int32 = 0
    Dim fix As Int64 = 0
    If num.ToString.Contains(".") And num.ToString.EndsWith(".") = False Then
    isdes = True
    dot = num.ToString.IndexOf(".") + 1
    des = Convert.ToInt32(num.ToString.Substring(dot))

    fix = Convert.ToInt64(num.ToString.Substring(0, dot - 1))
    Else
    fix = num
    End If
    If fix.ToString.Length > 15 Then
    Return "عدد وارد شده نامتعارف می باشد"
    Exit Function
    End If

    Dim Part() As String = Split(FormatNumber(fix, 0), ",")
    Select Case Part.Length
    Case Is = 1 'And Not CInt(Part(0)) = 0
    Return GetThree(Part(0)) & If(des, " ممیز " & GetThree(des) & searchdes(des), Nothing)
    Case Is = 2
    If CInt(Part(1)) = 0 Then
    Return GetThree(Part(0)) & " هزار " & If(des, " ممیز " & GetThree(des) & searchdes(des), Nothing) : Else
    Return GetThree(Part(0)) & " هزار و " & GetThree(Part(1)) & If(des, " ممیز " & GetThree(des) & searchdes(des), Nothing)
    End If
    Case Is = 3
    If CInt(Part(1)) + CInt(Part(2)) = 0 Then
    Return GetThree(Part(0)) & " ميليون " & If(des, " ممیز " & GetThree(des) & searchdes(des), Nothing) : Else
    Return GetThree(Part(0)) & " ميليون و " & GetStringOfNumber(Part(1) & Part(2)) & If(des, " ممیز " & GetThree(des) & searchdes(des), Nothing)
    End If
    Case Is = 4
    If CInt(Part(1)) + CInt(Part(2)) + CInt(Part(3)) = 0 Then
    Return GetThree(Part(0)) & " ميليارد " & If(des, " ممیز " & GetThree(des) & searchdes(des), Nothing) : Else
    Return GetThree(Part(0)) & " ميليارد و " & GetStringOfNumber(Part(1) & Part(2) & Part(3)) & If(des, " ممیز " & GetThree(des) & searchdes(des), Nothing)
    End If
    Case Is = 5
    If CInt(Part(1)) + CInt(Part(2)) + CInt(Part(3)) + CInt(Part(4)) = 0 Then
    Return GetThree(Part(0)) & " هزار " & If(des, " ممیز " & GetThree(des) & searchdes(des), Nothing) : Else
    Return GetThree(Part(0)) & " هزار و " & GetStringOfNumber(Part(1) & Part(2) & Part(3) & Part(4)) & If(des, " ممیز " & GetThree(des) & searchdes(des), Nothing)
    End If
    End Select
    Return Nothing
    End Function
    Private Function GetThree(ByVal Num As Integer) As String
    Select Case Num
    Case Is < 10
    Return Search(Num)
    Case Is < 100
    If Num <= 20 Or (Num Mod 10) = 0 Then
    Return Search(Num) : Else
    Return Search((Math.Floor(Num / 10)) * 10) & " و " & Search(Num - ((Math.Floor(Num / 10)) * 10))
    End If
    Case Is < 1000
    If Num Mod 100 = 0 Then
    Return Search(Num) : Else
    Return Search((Math.Floor(Num / 100)) * 100) & " و " & GetThree(Num - ((Math.Floor(Num / 100)) * 100))
    End If
    End Select
    Return Nothing
    End Function
    Private Function Search(ByVal Num As Integer) As String
    For i As Integer = 0 To listOFNumbers.Length - 1
    If listOFNumbers(i).intNum = Num Then Return listOFNumbers(i).strNum
    Next
    Return Nothing
    End Function
    Private Function searchdes(ByVal dess As Integer) As String
    Select Case dess
    Case Is < 10
    Return listOfDesimals(0)
    Case Is < 100
    Return listOfDesimals(1)
    Case Is < 1000
    Return listOfDesimals(2)
    End Select
    Return Nothing
    End Function
    End Class


  34. #34

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

    خط 22 تا 34 را با کدهای زیر عوض کنید


    If num.ToString.Length > 15 Or num.ToString.EndsWith(".") = TrueOr num.ToString.StartsWith(".") = TrueThen

    Return"عدد وارد شده نامتعارف می باشد"

    Exit Function

    EndIf

    If num Mod 1 <> 1 Then

    isdec = True

    dot = num.ToString.IndexOf(".") + 1

    dec = Convert.ToInt32(num.ToString.Substring(dot))

    fix = Math.Truncate(Convert.ToDecimal(num))

    Else

    fix = Convert.ToInt64(num)

    EndIf

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

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