vb দিয়ে তৈরী করুন সংখ্যাকে কথায় রূপান্তর করার প্রোগ্রাম

প্রিয় বন্ধুরা, কেমন আছেন সবাই। আশা করছি ভাল। ভিজুয়াল বেসিক নিয়ে যারা কাজ করেন, তাদের জন্য ছোট্ট অথচ প্রয়োজনীয় একটি প্রোগ্রামের বিবরণ ও সোর্স কোড উপস্থাপন করলাম। হিসাব বিষয়ক যে কোন প্রোগ্রামে এটি ব্যবহার করা যাবে।
প্রথমে ভিজুয়াল বেসিক ওপেন করে একটি Standard Exe ফাইল ওপেন করুন। তারপর একটি টেক্সট বক্স, একটি কমান্ড বাটন ও তিনটি লেবেল বসিয়ে ফর্মটিকে নিচের মত সাজান।
Form1
এবার কোড লেখার পালা।

প্রথমে কোড উইনন্ডোর General অংশে লিখুনঃ
Dim inwrd(100)
এখানে 100 টি Variable ঘোষণা করা হয়েছে। এই Variable গুলো 0 থেকে 99 পর্যন্ত সংখ্যার কথা (in word) ধারণ করবে।

এবার ফর্ম এর লোড উইন্ডোতে নিম্নের কোড লিখুনঃ
Label1.Caption = "Taka:"
Text1.Text = ""
Text1.MaxLength = 9
Text1.TabIndex = 0
Label2.Caption = "In Word:"
Label3.Caption = ""
Label3.FontBold = True
Command1.Caption = "Make in Word"

inwrd(0) = ""
inwrd(1) = "One"
inwrd(2) = "Two"
inwrd(3) = "Three"
inwrd(4) = "Four"
inwrd(5) = "Five"
inwrd(6) = "Six"
inwrd(7) = "Seven"
inwrd(8) = "Eight"
inwrd(9) = "Nine"
inwrd(10) = "Ten"
inwrd(11) = "Eleven"
inwrd(12) = "Twelve"
inwrd(13) = "Thirteen"
inwrd(14) = "Fourteen"
inwrd(15) = "Fifteen"
inwrd(16) = "Sixteen"
inwrd(17) = "Seventeen"
inwrd(18) = "Eighteen"
inwrd(19) = "Nineteen"
inwrd(20) = "Twenty"
inwrd(21) = "Twenty One"
inwrd(22) = "Twenty Two"
inwrd(23) = "Twenty Three"
inwrd(24) = "Twenty Four"
inwrd(25) = "Twenty Five"
inwrd(26) = "Twenty Six"
inwrd(27) = "Twenty Seven"
inwrd(28) = "Twenty Eight"
inwrd(29) = "Twenty Nine"
inwrd(30) = "Thirty"
inwrd(31) = "Thirty One"
inwrd(32) = "Thirty Two"
inwrd(33) = "Thirty Three"
inwrd(34) = "Thirty Four"
inwrd(35) = "Thirty Five"
inwrd(36) = "Thirty Six"
inwrd(37) = "Thirty Seven"
inwrd(38) = "Thirty Eight"
inwrd(39) = "Thirty Nine"
inwrd(40) = "Forty"
inwrd(41) = "Forty One"
inwrd(42) = "Forty Two"
inwrd(43) = "Forty Three"
inwrd(44) = "Forty Four"
inwrd(45) = "Forty Five"
inwrd(46) = "Forty Six"
inwrd(47) = "Forty Seven"
inwrd(48) = "Forty Eight"
inwrd(49) = "Forty Nine"
inwrd(50) = "Fifty"
inwrd(51) = "Fifty One"
inwrd(52) = "Fifty Two"
inwrd(53) = "Fifty Three"
inwrd(54) = "Fifty Four"
inwrd(55) = "Fifty Five"
inwrd(56) = "Fifty Six"
inwrd(57) = "Fifty Seven"
inwrd(58) = "Fifty Eight"
inwrd(59) = "Fifty Nine"
inwrd(60) = "Sixty"
inwrd(61) = "Sixty One"
inwrd(62) = "Sixty Two"
inwrd(63) = "Sixty Three"
inwrd(64) = "Sixty Four"
inwrd(65) = "Sixty Five"
inwrd(66) = "Sixty Six"
inwrd(67) = "Sixty Seven"
inwrd(68) = "Sixty Eight"
inwrd(69) = "Sixty Nine"
inwrd(70) = "Seventy"
inwrd(71) = "Seventy One"
inwrd(72) = "Seventy Two"
inwrd(73) = "Seventy Three"
inwrd(74) = "Seventy Four"
inwrd(75) = "Seventy Five"
inwrd(76) = "Seventy Six"
inwrd(77) = "Seventy Seven"
inwrd(78) = "Seventy Eight"
inwrd(79) = "Seventy Nine"
inwrd(80) = "Eighty"
inwrd(81) = "Eighty One"
inwrd(82) = "Eighty Two"
inwrd(83) = "Eighty Three"
inwrd(84) = "Eighty Four"
inwrd(85) = "Eighty Five"
inwrd(86) = "Eighty Six"
inwrd(87) = "Eighty Seven"
inwrd(88) = "Eighty Eight"
inwrd(89) = "Eighty Nine"
inwrd(90) = "Ninety"
inwrd(91) = "Ninety One"
inwrd(92) = "Ninety Two"
inwrd(93) = "Ninety Three"
inwrd(94) = "Ninety Four"
inwrd(95) = "Ninety Five"
inwrd(96) = "Ninety Six"
inwrd(97) = "Ninety Seven"
inwrd(98) = "Ninety Eight"
inwrd(99) = "Ninety Nine"
এখানে ফর্ম এর Text Box, Command Button ও Label গুলোর Caption এবং Variable গুলোর মান নির্ধারণ করা হয়েছে।

এবার Command1 এর Click Event এ নিম্নের কোড টাইপ করুনঃ
If Not IsNumeric(Text1) Then
MsgBox ("Invalid number or no number"), vbOKOnly + vbCritical, "Invalid Number"
Text1 = ""
Label3.Caption = ""
Text1.SetFocus
Exit Sub
End If

Dim num
num = Val(Text1)
num = Format(num, "0.00")
Do Until Len(num) = 12
num = 0 & num
Loop

p = Right(num, 2)
d = Mid(num, 8, 2)
s = Mid(num, 7, 1)
h = Mid(num, 5, 2)
l = Mid(num, 3, 2)
k = Mid(num, 1, 2)

If Val(p) > 0 Then
p = inwrd(p) & " Paisa"
Else
p = ""
End If

If Val(d) > 0 Then
d = inwrd(d)
Else
d = ""
End If

If Val(s) = 0 Then
s = ""
ElseIf Val(s) = 1 Then
s = inwrd(s) & " Hundred "
ElseIf Val(s) > 1 Then
s = inwrd(s) & " Hundreds "
End If

If Val(h) = 0 Then
h = ""
ElseIf Val(h) = 1 Then
h = inwrd(h) & " Thousand "
ElseIf Val(h) > 1 Then
h = inwrd(h) & " Thousands "
End If

If Val(l) = 0 Then
l = ""
ElseIf Val(l) = 1 Then
l = inwrd(l) & " Lac "
ElseIf Val(l) > 1 Then
l = inwrd(l) & " Laks "
End If

If Val(k) = 0 Then
k = ""
ElseIf Val(k) = 1 Then
k = inwrd(k) & " Crore "
ElseIf Val(k) > 1 Then
k = inwrd(k) & " Crores "
End If

wrd = k & l & h & s & d & " Taka " & p & " Only."
Label3.Caption = wrd

এবার Run করুন। Text Box এ সংখ্যা লিখুন এবং Make in Word এ ক্লিক করুন। আপনার লিখিত নম্বর কথায় রূপান্তরিত হয়ে Label3 তে নিম্নরূপ প্রদর্শিত হবেঃ
Form1

বন্ধুরা TechTunes এ এটি আমার প্রথম লেখা। আপনাদের উৎসাহ ও গঠনমুলক মন্তব্য পেলে ভবিষ্যতে আমি এ জাতীয় অথবা অন্য যে কোন বিষয় নিয়ে আরও লেখার চেষ্টা করবো।

ভাল থাকুন সবাই।

Level 2

আমি ইসমাইল। বিশ্বের সর্ববৃহৎ বিজ্ঞান ও প্রযুক্তির সৌশল নেটওয়ার্ক - টেকটিউনস এ আমি 15 বছর 5 মাস যাবৎ যুক্ত আছি। টেকটিউনস আমি এ পর্যন্ত 22 টি টিউন ও 279 টি টিউমেন্ট করেছি। টেকটিউনসে আমার 2 ফলোয়ার আছে এবং আমি টেকটিউনসে 0 টিউনারকে ফলো করি।

প্রযুক্তির জ্ঞান সমূদ্রের বিশালতার তুলনায় আমি কিছুই জানি না এবং বাকী জীবনে কতটুকু জানতে পারবো তাও জানি না। কিছু জানার একটা নেশা আমায় ছাড়ে না। সেজন্যে সময় পেলেই বিচরণ করি প্রযুক্তি বিষয়ক সাইটগুলোতে, যদি নিজের অজ্ঞতা কিছুটা হলেও লাঘব করতে পারি। আর এত এত প্রযুক্তি প্রেমী ও টেকীদের সাথে থাকতে...


টিউনস


আরও টিউনস


টিউনারের আরও টিউনস


টিউমেন্টস

ভাল টিউন।

Welcome to techtunes

ইংরেজীতে তো পুরান হয়েছে, বাংলায় সংখ্যা দেখা যাবে যেমন দুই কোটি বার লক্ষ তেপান্ন হাজার দুইশত উনিশ টাকা তেত্রিশ পয়সা।

এভাবেও হয়ঃ

In Words Project :

Object Name Caption Auto Size
Form1 In Words
Text1
Label1 True

General Declaration :

Option Base 0

Function InWords(ByVal GetAmount As Variant) As String
On Error GoTo Kick_Errors
Dim n As Integer
Dim w As Variant
Dim t As Long
Dim p As Integer, pw As String
Dim aw As String
Dim i As Integer
If Not IsNumeric(GetAmount) Then Exit Function
If GetAmount > 999999999.99 Then Exit Function
w = Array(“”, “Thousand”, “Million”)
GetAmount = Abs(GetAmount)
t = Int(GetAmount)
p = (GetAmount – t) * 100
If t > 0 Then
Do
n = t Mod 1000
t = Int(t / 1000)
If n 0 Then
aw = GetAmWords(n) & “” & w(arrindex) & “” & aw
End If
arrindex = arrindex + 1
Loop While t > 0
If p > 0 Then
pw = GetAmWords(p)
aw = RTrim(aw) & “Taka and” & pw & “Paisa”
Else
aw = RTrim(aw) & “Taka Only”
End If
End If
getout:
InWords = aw
Exit Function
Kick_Errors:
aw = “”
Resume getout
End Function

Function GetAmWords(ByVal GetAmount As Integer) As String
Static o As Variant
Static te As Variant
Dim w As String
Dim d As Integer
If IsEmpty(o) Then
o = Array(“”, “One”, “Two”, “Three”, “Four”, “Five”, “Six”, “Seven”, “Eight”, “Nine”, “Ten”, “Eleven”, “Twelve”, “Thirteen”, “Fourteen”, “Fifteen”, “Sixteen”, “Seventeen”, “Eighteen”, “Nineteen”, “Twenty”)
End If
If IsEmpty(te) Then
te = Array(“”, “”, “Twenty”, “Thirty”, “Fourty”, “Fifty”, “Sixty”, “Seventy”, “Eighty”, “Ninety”)
End If
d = GetAmount \ 100
GetAmount = GetAmount Mod 100
If d > 0 Then
w = o(d) & “Hundred”
End If
Select Case GetAmount
Case 1 To 20
w = w & o(GetAmount)
Case 21 To 99
d = GetAmount \ 10
GetAmount = GetAmount Mod 10
If d > 0 Then
w = w & “” & te(d)
End If
If GetAmount > 0 Then
w = w & “” & o(GetAmount)
End If
End Select
GetAmWords = w
End Function

Private Sub Form_Load()
Text1.Text = “”
Form1.Width = 9000
End Sub

Private Sub Text1_Change()
Label1.Caption = InWords(Text1.Text)
End Sub

বাংলায় কেউ পারলে সহযোগিতা করুন।

ভাল টিউন।

Level 2

জহির ভাই, মন্তব্যের জন্য ধন্যবাদ।
আমি চেষ্টা করছি কথায় প্রকাশ করার জন্য কীভাবে কোড লেখা যায় তা দেখাতে।
যারা কোড বুঝেন তারা অবশ্যই এটা অনুসরণ করে বাংলাতেও কথায় প্রকাশ করতে পারবেন।
সেক্ষেত্রে আপনাকে Text Box ও Lebel সমূহের ফন্ট বাংলা ব্যবহার করতে হবে এবং
inwrd ভ্যারিয়েবলের মানসমূহ ডিক্লার করার সময় ইংরেজীর স্থানে বাংলা মান উল্লেখ করতে হবে।
যেমন, inwrd(1)=”One” হবে inwrd(1)=”GK” (“GK” বাংলায় “শত” প্রদর্শিত হবে)।
আর Command1 এর কোডে কিছুটা পরিবর্তণ আসবে। যেমন,
If Val(s) = 0 Then
s = “”
Else
s = inwrd(s) & ” kZ ”
End If
এখানে “kZ” বাংলায় “শত” প্রদর্শিত হবে।
এভাবে কোড পরিবর্তণ করে আপনি অবশ্যই বাংলায় কথায় প্রকাশ করতে পারবেন।
ভাল থাকবেন।

Level 2

যারা মন্তব্য দিয়েছেন সবাইকে অনেক অনেক ধন্যবাদ।

কিন্তু লক্ষ, কোটি সঠিক ভাবে দেখা যায় ?

Level 2

লক্ষ, কোটি অবশ্যই দেখা যাবে। আপনি চেষ্টা করে দেখুন।
তবে কোন কোন ফন্ট এ ‘ক্ষ’ সঠিকভাবে প্রদর্শিত নাও হতে পারে।
আপনি যে কোডটি পাঠিয়েছেন তাকে পরিবর্তণ করেও বাংলায় কথায় প্রকাশ করা যাবে।
আপনার দেয়া কোড এর একটি লাইনে একটু ভুল আছে।
তা হচ্ছে, If n 0 Then
এখানে হবে If n > 0 Then
ভাল থাকুন।

ভালো লাগলো। এক সময় ভিবিতে বেশ কিছু কাজ করেছি। প্রায় 7 বছর আগে। এখন আর কিছু পারবো বলে মনে হয় না। পি,এল, সি এর জন্য আপনার মতামত পেয়েছিলাম। টিউনটি গতকাল বিকেলে ওপেন হচ্ছিল না। তাই মুছে নতুন করে দিতে হল। আর তাই সব মুছে গেছে।

Level 2

ধন্যবাদ।
আমি আপনার পরের টিউনটি পড়েছি এবং মন্তব্য দিয়েছি।
সহজভাবে A-Z উপস্থাপনের চেষ্টা করুন। আমরা আপনার সাথে থাকবো।
ভাল থাকুন।

Thanks, Its so helpfull, Pls send more tune like that….

Level 2

Thank you too. I’ll try to do as you requested.
Be well.

আমি বিভিতে সামাণ্য কিছু কাঝ করেছি।দেখি এখন এই কোড গুলো ব্যবহার করে কতটুকু কি করতে পারি।

Level 0

Good tune…

Jara Jara Parben,tader sabbaike,:

ami eta invoice bananor bapare ki vabe kaje lagate pari ? bishes kore Microsoft Exel e jodi kono invoice banai.
tate total billing amount ta nicher kono nirdisto jaygay word e show korte chai.
please Help me.
Thanks.

[email protected]

    To Bipasa,
    আপনি মাইক্রোসফট এক্সেল-এ ইনভয়েস বানাতে চাইলে এবং তাতে নাম্বার টু টেক্টস যোগ করতে চাইলে আপনাকে ভি.বি.এ নিয়ে কাজ করতে হবে। অর্থাত, এক্সেল-এর ভিতরে আপনাকে ভিজ্যুয়াল বেসিকের cjfcjfcjfকোড লিখতে হবে।
    ধন্যবাদ।

Level 0

ইসমাইল দাদা আপনার তৈরি সফট সত্যি কাজ করে ় আমি উপকৃত হলাম
দাদা আমি একটা মিডিয়া পেলয়ার তৈরি করেছি কিনতু ইকুলাইজার কোরতে পারছিনা
একটু Help করুন দাদা আমি আশা কোরছি আপনি Help কোরবেন
EMAIL – [email protected]