PDA

View Full Version : تبدیل عدد به حروف



rasool123
یک شنبه 18 بهمن 1383, 09:21 صبح
سلام
من یک برنامه اکسس نوشته ام و میخواهم بدانم چطوری متوانم قیمت یک کالا را که بصورت عددی محاسبه شده است را خود اکسس بصورت حروفی برای من چاپ نمایید
با تشکر

سنبله کار
یک شنبه 18 بهمن 1383, 12:23 عصر
برای هجای اعداد به حروف فارسی باید در قسمت modules یک تابع بنویسید و در فرم از آن استفاده کنید.

payam59
یک شنبه 18 بهمن 1383, 17:24 عصر
سلام
اگر در قسمت وی بی بگردی می تونی ماژول مربوطه رو پیداکنی . با اینحال می تونی از ماژول زیر که از سایت try.persianblog.com برداشتم استفاده کنی .

*********** Start of Module ***********

'توابع تبدیل عدد به معادل حروفی آن در زبان فارسی
'برنامه نویس : حمید آزادی اردکانی
'ویرایش اول : اردیبهشت 1380
' پست الکترونیک : azadi1355@yahoo.com
' آدرس وب : http://try.persianblog.com

Function Adad(ByVal Number As Double) As String
If Number = 0 Then
Adad = "صفر"
End If
Dim Flag As Boolean
Dim S As String
Dim I, L As Byte
Dim K(1 To 5) As Double

S = Trim(Str(Number))
L = Len(S)
If L > 15 Then
Adad = "بسیار بزرگ"
Exit Function
End If
For I = 1 To 15 - L
S = "0" & S
Next I
For I = 1 To Int((L / 3) + 0.99)
K(5 - I + 1) = Val(Mid(S, 3 * (5 - I) + 1, 3))
Next I
Flag = False
S = ""
For I = 1 To 5
If K(I) <> 0 Then
Select Case I
Case 1
S = S & Three(K(I)) & " تریلیون"
Flag = True
Case 2
S = S & IIf(Flag = True, " و ", "") & Three(K(I)) & " میلیارد"
Flag = True
Case 3
S = S & IIf(Flag = True, " و ", "") & Three(K(I)) & " میلیون"
Flag = True
Case 4
S = S & IIf(Flag = True, " و ", "") & Three(K(I)) & " هزار"
Flag = True
Case 5
S = S & IIf(Flag = True, " و ", "") & Three(K(I))
End Select
End If
Next I
Adad = S
End Function


Function Three(ByVal Number As Integer) As String
Dim S As String
Dim I, L As Long
Dim h(1 To 3) As Byte
Dim Flag As Boolean
L = Len(Trim(Str(Number)))
If Number = 0 Then
Three = ""
Exit Function
End If
If Number = 100 Then
Three = "یکصد"
Exit Function
End If

If L = 2 Then h(1) = 0
If L = 1 Then
h(1) = 0
h(2) = 0
End If

For I = 1 To L
h(3 - I + 1) = Mid(Trim(Str(Number)), L - I + 1, 1)
Next I

Select Case h(1)
Case 1
S = "یکصد"
Case 2
S = "دویست"
Case 3
S = "سیصد"
Case 4
S = "چهارصد"
Case 5
S = "پانصد"
Case 6
S = "ششصد"
Case 7
S = "هفتصد"
Case 8
S = "هشتصد"
Case 9
S = "نهصد"
End Select

Select Case h(2)
Case 1
Select Case h(3)
Case 0
S = S & " و " & "ده"
Case 1
S = S & " و " & "یازده"
Case 2
S = S & " و " & "دوازده"
Case 3
S = S & " و " & "سیزده"
Case 4
S = S & " و " & "چهارده"
Case 5
S = S & " و " & "پانزده"
Case 6
S = S & " و " & "شانزده"
Case 7
S = S & " و " & "هفده"
Case 8
S = S & " و " & "هجده"
Case 9
S = S & " و " & "نوزده"
End Select

Case 2
S = S & " و " & "بیست"
Case 3
S = S & " و " & "سی"
Case 4
S = S & " و " & "چهل"
Case 5
S = S & " و " & "پنجاه"
Case 6
S = S & " و " & "شصت"
Case 7
S = S & " و " & "هفتاد"
Case 8
S = S & " و " & "هشتاد"
Case 9
S = S & " و " & "نود"
End Select

If h(2) <> 1 Then
Select Case h(3)
Case 1
S = S & " و " & "یک"
Case 2
S = S & " و " & "دو"
Case 3
S = S & " و " & "سه"
Case 4
S = S & " و " & "چهار"
Case 5
S = S & " و " & "پنج"
Case 6
S = S & " و " & "شش"
Case 7
S = S & " و " & "هفت"
Case 8
S = S & " و " & "هشت"
Case 9
S = S & " و " & "نه"
End Select
End If
S = IIf(L < 3, Right(S, Len(S) - 3), S)
Three = S
End Function

' *********** End Of Module ***********

rasool123
چهارشنبه 21 بهمن 1383, 09:06 صبح
PAYAM59 از راهنمایی شما متشکرم

mhkavian
سه شنبه 04 تیر 1392, 02:11 صبح
با سلام
کامل ترین نمونه تابع تبدیل عدد به حروف که امکان تبدیل اعداد در نمای علمی رو هم به حروف داره .
می تونید از آدرس زیر دریافت کنید .
http://mantis.ir/access-knowledge/ac...-articles.html (http://mantis.ir/access-knowledge/access-articles/item/41-%D8%AA%D8%A7%D8%A8%D8%B9-%D8%AA%D8%A8%D8%AF%DB%8C%D9%84-%D8%B9%D8%AF%D8%AF-%D8%A8%D9%87-%D8%AD%D8%B1%D9%88%D9%81-%D9%85%D8%A7%D9%86%D8%AA%DB%8C%D8%B3.html)

Access2013
سه شنبه 04 تیر 1392, 23:57 عصر
سلام

دوست گرامي mhkavian (http://barnamenevis.org/member.php?31995-mhkavian) اگه من مدير بخش بودم حتما تذكر جدي بهت ميدادم تا دفعه بعد ...!!!
يه نگاه به اين تاپيكهايي كه باز كردي بنداز : اولي (http://barnamenevis.org/showthread.php?313222-%DA%86%D9%87-%D8%AC%D9%88%D8%B1%D9%8A-%D9%85%D9%8A%D9%8A%D8%B4%D9%87-%D9%83%D9%87-%D8%A7%D8%B9%D8%AF%D8%A7%D8%AF-%D8%B1%D9%88-%D8%A8%D9%87-%D8%AD%D8%B1%D9%88%D9%81-%D8%AA%D8%A8%D8%AF%D9%8A%D9%84-%D9%83%D9%86%D9%8A%D9%85)، دومي (http://barnamenevis.org/showthread.php?239774-%D8%AA%D8%A8%D8%AF%D9%8A%D9%84-%D8%B9%D8%AF%D8%AF-%D8%A8%D9%87-%D8%AD%D8%B1%D9%88%D9%81-%D8%AF%D8%B1-%D8%A7%D9%83%D8%B3%D8%B3) ، سومي (http://barnamenevis.org/showthread.php?185296-%D9%85%D8%A7%DA%98%D9%88%D9%84-%D8%A2%D9%85%D8%A7%D8%AF%D9%87-%D8%AA%D8%A8%D8%AF%DB%8C%D9%84-%D8%B9%D8%AF%D8%AF-%D8%A8%D9%87-%D8%AD%D8%B1%D9%81-%D8%AF%D8%B1%D8%A7%DA%A9%D8%B3%D8%B32007) ، چهارمي (http://barnamenevis.org/showthread.php?150155-%D9%85%D8%A7%DA%98%D9%88%D9%84%DB%8C-%D8%A8%D8%B1%D8%A7%DB%8C-%D8%AA%D8%A8%D8%AF%DB%8C%D9%84-%D8%A7%D8%B9%D8%AF%D8%A7%D8%AF-%D8%A8%D9%87-%D8%AD%D8%B1%D9%88%D9%81-%D8%AF%D8%B1-%D8%A7%DA%A9%D8%B3%D8%B3) ، پنجمي (http://barnamenevis.org/showthread.php?93846-%D9%86%D9%85%D8%A7%DB%8C%D8%B4-%D8%AD%D8%B1%D9%88%D9%81%DB%8C-%D8%A7%D8%B9%D8%AF%D8%A7%D8%AF) ، ششمي (http://barnamenevis.org/showthread.php?78521-%D8%AA%D8%A8%D8%AF%DB%8C%D9%84-%D8%B9%D8%AF%D8%AF%28%D9%85%D8%A8%D9%84%D8%BA%29-%D8%A8%D9%87-%D8%AD%D8%B1%D9%88%D9%81) ، هفتمي (http://barnamenevis.org/showthread.php?76462-%D8%AA%D8%A8%D8%AF%DB%8C%D9%84-%D8%B9%D8%AF%D8%AF-%D8%A8%D9%87-%D8%AD%D8%B1%D9%88%D9%81) ، هشتمي (http://barnamenevis.org/showthread.php?16579-%D8%AA%D8%A8%D8%AF%DB%8C%D9%84-%D8%B9%D8%AF%D8%AF-%D8%A8%D9%87-%D8%AD%D8%B1%D9%88%D9%81) ،. (http://barnamenevis.org/showthread.php?51987-%D9%85%D8%B4%DA%A9%D9%84%D8%A7%D8%AA-%D9%81%D8%A7%D8%B1%D8%B3%DB%8C-%D9%88-%D8%B3%D9%88%D8%B1%D8%B3-%D9%87%D8%A7%DB%8C-%D9%85%D8%B1%D8%A8%D9%88%D8%B7%D9%87/page2)...
اين كار شما بيشتر شبيه يه فكاهي بود تا حل مشكل كاربراني كه سه يا چهار سال پيش سوالي پرسيدند و همه به نتيجه هم رسيده بودند:قهقهه::گیج::متعجب:

آخه برادر من اگه منظورتون معرفي اين ماژول هست ميتونستي تاپيك بزني و همون نمونه را بزاري هر چند من سمپلي هم تو اون سايت نديدم !!
و اينك چند سوال :
شما آدرس ما را به اون سايت معرفي كرديد كه چند تا جاك اسپم تو ايميلم دارم؟
تو اون سايت شما چه كاره هستي ؟
معرفي اين سايت مطابق قوانين سايت هست يا خير؟
آيا از بقيه دوستان هم كسي براش ايميل از اون سايت اومده ؟
در صورتي كه بدون رضايت من آدرس را داده باشيد من پيگيري ميكنم .

فعلا

Abbas Amiri
چهارشنبه 05 تیر 1392, 21:41 عصر
سلام

دوست گرامي mhkavian (http://barnamenevis.org/member.php?31995-mhkavian) اگه من مدير بخش بودم حتما تذكر جدي بهت ميدادم تا دفعه بعد ...!!!
يه نگاه به اين تاپيكهايي كه باز كردي بنداز : اولي (http://barnamenevis.org/showthread.php?313222-%DA%86%D9%87-%D8%AC%D9%88%D8%B1%D9%8A-%D9%85%D9%8A%D9%8A%D8%B4%D9%87-%D9%83%D9%87-%D8%A7%D8%B9%D8%AF%D8%A7%D8%AF-%D8%B1%D9%88-%D8%A8%D9%87-%D8%AD%D8%B1%D9%88%D9%81-%D8%AA%D8%A8%D8%AF%D9%8A%D9%84-%D9%83%D9%86%D9%8A%D9%85)، دومي (http://barnamenevis.org/showthread.php?239774-%D8%AA%D8%A8%D8%AF%D9%8A%D9%84-%D8%B9%D8%AF%D8%AF-%D8%A8%D9%87-%D8%AD%D8%B1%D9%88%D9%81-%D8%AF%D8%B1-%D8%A7%D9%83%D8%B3%D8%B3) ، سومي (http://barnamenevis.org/showthread.php?185296-%D9%85%D8%A7%DA%98%D9%88%D9%84-%D8%A2%D9%85%D8%A7%D8%AF%D9%87-%D8%AA%D8%A8%D8%AF%DB%8C%D9%84-%D8%B9%D8%AF%D8%AF-%D8%A8%D9%87-%D8%AD%D8%B1%D9%81-%D8%AF%D8%B1%D8%A7%DA%A9%D8%B3%D8%B32007) ، چهارمي (http://barnamenevis.org/showthread.php?150155-%D9%85%D8%A7%DA%98%D9%88%D9%84%DB%8C-%D8%A8%D8%B1%D8%A7%DB%8C-%D8%AA%D8%A8%D8%AF%DB%8C%D9%84-%D8%A7%D8%B9%D8%AF%D8%A7%D8%AF-%D8%A8%D9%87-%D8%AD%D8%B1%D9%88%D9%81-%D8%AF%D8%B1-%D8%A7%DA%A9%D8%B3%D8%B3) ، پنجمي (http://barnamenevis.org/showthread.php?93846-%D9%86%D9%85%D8%A7%DB%8C%D8%B4-%D8%AD%D8%B1%D9%88%D9%81%DB%8C-%D8%A7%D8%B9%D8%AF%D8%A7%D8%AF) ، ششمي (http://barnamenevis.org/showthread.php?78521-%D8%AA%D8%A8%D8%AF%DB%8C%D9%84-%D8%B9%D8%AF%D8%AF%28%D9%85%D8%A8%D9%84%D8%BA%29-%D8%A8%D9%87-%D8%AD%D8%B1%D9%88%D9%81) ، هفتمي (http://barnamenevis.org/showthread.php?76462-%D8%AA%D8%A8%D8%AF%DB%8C%D9%84-%D8%B9%D8%AF%D8%AF-%D8%A8%D9%87-%D8%AD%D8%B1%D9%88%D9%81) ، هشتمي (http://barnamenevis.org/showthread.php?16579-%D8%AA%D8%A8%D8%AF%DB%8C%D9%84-%D8%B9%D8%AF%D8%AF-%D8%A8%D9%87-%D8%AD%D8%B1%D9%88%D9%81) ،. (http://barnamenevis.org/showthread.php?51987-%D9%85%D8%B4%DA%A9%D9%84%D8%A7%D8%AA-%D9%81%D8%A7%D8%B1%D8%B3%DB%8C-%D9%88-%D8%B3%D9%88%D8%B1%D8%B3-%D9%87%D8%A7%DB%8C-%D9%85%D8%B1%D8%A8%D9%88%D8%B7%D9%87/page2)...
اين كار شما بيشتر شبيه يه فكاهي بود تا حل مشكل كاربراني كه سه يا چهار سال پيش سوالي پرسيدند و همه به نتيجه هم رسيده بودند:قهقهه::گیج::متعجب:

آخه برادر من اگه منظورتون معرفي اين ماژول هست ميتونستي تاپيك بزني و همون نمونه را بزاري هر چند من سمپلي هم تو اون سايت نديدم !!
و اينك چند سوال :
شما آدرس ما را به اون سايت معرفي كرديد كه چند تا جاك اسپم تو ايميلم دارم؟
تو اون سايت شما چه كاره هستي ؟
معرفي اين سايت مطابق قوانين سايت هست يا خير؟
آيا از بقيه دوستان هم كسي براش ايميل از اون سايت اومده ؟
در صورتي كه بدون رضايت من آدرس را داده باشيد من پيگيري ميكنم .

فعلا

پست های غیر ضروری mhkavian (http://barnamenevis.org/member.php?31995-mhkavian) منافاتی با قوانین تالار نداشت ، چنانچه ایشان تاپیکهایی با موضوعات یکسان ایجاد می کردند ، تخلف محسوب و مشمول جریمه می شد . ولی ایشان جواب به پست های تکراری قبلی دادند . و بنده هم به خود اجازه برخورد خودسرانه نمی دهم .
دیدید که چند پست که همه حتی در عناوین یکسان بودند ، ایجاد شده بود . باید دراینجا یادی از استادعزیزمان آقای پیروزمهر کنم که در این موارد توصیه به عدم جوابگویی به تاپیکهای تکراری داشتند .

چنانچه نتیجه گیری شما از اقدام mhkavian (http://barnamenevis.org/member.php?31995-mhkavian) را دیگر کاربران هم داشته باشند این تبلیغ منفی برای ایشان بوده است . درمورد ارسال ایمیل های اسپم هم چیزی ندیدم .

mhkavian
یک شنبه 16 تیر 1392, 01:51 صبح
با سلام
ضمن تشکر از جناب اميري بابت قضاوت بدون غرض ايشان


دوست گرامي mhkavian اگه من مدير بخش بودم حتما تذكر جدي بهت ميدادم تا دفعه بعد ...!!!
فکر می کنم از آذر 1385 که اینجانب عضو سایت شدم تا فروردین 1392 که شما عضو سایت شدید ، 5 الی 6 بار قوانین سایت رو مطالعه کردم . به نظر من هم بهترين روش براي معرفي يک تابع جديد و بهينه شده همين روش است . اتفاقا اين کم لطفي ساير دوستان بوده که بدون جستجو چندین تاپیک جدید ایجاد کردند . و بقیه بدون توجه به این مسئله این تاپیک ها رو ادامه دادند . من خیلی خوشحال می شدم اگر برای این موضوع یک تاپیک وجود داشت و من هم در همان تاپیک این تابع بهینه شده رو معرفی می کردم . وگرنه من بیکار نیستم که برای شما فکاهی درست کنم . هدف من خیلی واضح و روشنه : من می خواستم اگر کسی هر جور در این مورد جستجو کرد به راه حل بهینه شده و نهایی من ( البته تا کنون ) برسه .

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

آخه برادر من اگه منظورتون معرفي اين ماژول هست ميتونستي تاپيك بزني و همون نمونه را بزاري هر چند من سمپلي هم تو اون سايت نديدم !!
به پست دوم این تاپیک یه نگاه بیندازین :
به نظر شما این تناقض در نوشتار از کجا نشات گرفته (http://barnamenevis.org/showthread.php?401316-%D9%86%D9%85%D8%A7%DB%8C%D8%B4-%D8%A2%D8%AE%D8%B1%DB%8C%D9%86-%D9%81%DB%8C%D9%84%D8%AF)
خدا را شکر در این مورد هم که مدیر بخش حق رو به اینجانب داد .
و اما سوالات :


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


تو اون سايت شما چه كاره هستي ؟
اینجانب محمد حسین کاویان مدیر سایت هستم .

معرفي اين سايت مطابق قوانين سايت هست يا خير؟
بله اینجانب در سایت برنامه نویس حق تنظیم امضا دارم و امضای من می تونه یه لینک به هر سایت باشه ( بهتره که مرتبط باشه )
لینک مطلبی هم که گذاشته شده هم مرتبط هست هم رایگان پس جنبه تجاری نداشته و هیچ مشکلی نداره !


آيا از بقيه دوستان هم كسي براش ايميل از اون سايت اومده ؟
تنها به کسانی ایمیل اومده که یا از سال 1378 تا کنون با من ارتباط ایمیلی داشته اند یا در آگهی هایی که من در اکثر سایت های درج آگهی از سال 1386 به بعد گذاشته ام نظر داده یا سال پرسیده اند که ایمیلشون ثبت شده .


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


در پایان می خواستم بگم در مدت زمانی که من روی این جوابیه گذاشتم می شد یه تابع جدید نوشت یا حداقل یک تابع رو بهینه کرد .
قطار تا وقتی که حرکت نمیکنه کسی بهش سنگ نمی زنه . ولی همین که حرکت می کنه همه شروع می کنن بهش سنگ پرتاب کردن .
من انتظار داشتم باگ های احتمالی این تابع توی این انجمن مطرح بشه تا به یاری خدا تابع رو بهینه تر کنم نه این بحث ها .
بیایید روی پست هامون کمی بیشتر فکر کنیم .
پیروز و سربلند
کاویان