เกริ่นนำ
ฟังก์ชั่นนี้ผมก็ได้เขียนขึ้นตั้งแต่ฝึกใช้ C# ใหม่ๆ ไม่รู้ตอนนี้เขามีฟังก์ชั่น จาก Visual Studio หรือยัง ตอนผมเขียนนั่นยังเป็น Framwork 2.0 และพัฒนาด้วย SharpDevelop 2.0 แต่ก็ได้นำไปใช้งานในระบบและใช้งานได้ดี จึงอยากเผยแพร่โค้ด ให้นำไปใช้งานกัน มาดูตัวอย่างการใช้งานกันเลย
๑. Thaibaht.cs
/*
* Created by SharpDevelop.
* User: ยงยุทธ ปินะถา
* Date: 16/01/2550
* Time: 21:15
*
* To change this template use Tools | Options | Coding | Edit Standard Headers.
*/
using
System;
namespace
Test1.Models
{
/// <summary>
/// Description of Thaibaht.
/// </summary>
///
[Serializable]
public
class
Thaibaht
{
public
Thaibaht()
{
}
}
public
class
ThaibahtMgr
{
public
ThaibahtMgr()
{
}
private
char
cha1;
private
string ProcessValue;
public
string Process(string numberVar1)
{
string [] NumberWord;
string [] NumberWord2;
string Num3=
""
;
cha1=
'.'
;
NumberWord=numberVar1.Split(cha1);
cha1=
','
;
NumberWord2=NumberWord[0].Split(cha1);
for
(
int
i=0;i<=NumberWord2.Length-1;i++)
{
Num3=Num3+NumberWord2[i];
}
ProcessValue= SplitWord(Num3);
if
(NumberWord.Length > 1)
{
if
(
int
.Parse(NumberWord[1])>0){
ProcessValue=ProcessValue+
"บาท"
+SplitWord(NumberWord[1])+
"สตางค์"
;
}
else
{
ProcessValue=ProcessValue+
"บาทถ้วน"
;
}
}
else
{
ProcessValue=ProcessValue+
"บาทถ้วน"
;
}
return
ProcessValue;
}
public
string SplitWord(string numberVar)
{
int
i=numberVar.Length;
int
k=0;
int
n=i;
int
m=i;
int
b=6;
//char value2;
char
[] value1;
string CurrencyWord=
""
;
value1=numberVar.ToCharArray();
for
(
int
a=0;a<=i;a=a+7){
if
(n<=a+7 && n>0){
b=n-1;
if
(i>7){
k=1;
}
}
else
{
b=6;
}
if
(n>0){
for
(
int
j=0;j<=b;j++){
n--;
k++;
CurrencyWord=GetWord(value1[n].ToString(),k)+CurrencyWord;
}
}
}
return
CurrencyWord;
}
public
string GetWord(string str1,
int
Num1)
{
string value1=GetCurrency(Num1);
switch
(str1)
{
case
"1"
:
if
(Num1==1)
{
value1=value1 +
"เอ็ด"
;
}
else
if
(Num1>2){
value1=
"หนึ่ง"
+value1;
}
break
;
case
"2"
:
if
(Num1==2)
{
value1=
"ยี่"
+ value1;
}
else
{
value1=
"สอง"
+ value1;
}
break
;
case
"3"
:
value1=
"สาม"
+ value1;
break
;
case
"4"
:
value1=
"สี่"
+ value1;
break
;
case
"5"
:
value1=
"ห้า"
+ value1;
break
;
case
"6"
:
value1=
"หก"
+ value1;
break
;
case
"7"
:
value1=
"เจ็ด"
+ value1;
break
;
case
"8"
:
value1=
"แปด"
+ value1;
break
;
case
"9"
:
value1=
"เก้า"
+ value1;
break
;
default
:
value1=
""
;
break
;
}
return
value1;
}
public
string GetCurrency(
int
Num2)
{
string value1;
switch
(Num2)
{
case
1:
value1=
""
;
break
;
case
2:
value1=
"สิบ"
;
break
;
case
3:
value1=
"ร้อย"
;
break
;
case
4:
value1=
"พัน"
;
break
;
case
5:
value1=
"หมื่น"
;
break
;
case
6:
value1=
"แสน"
;
break
;
case
7:
value1=
"ล้าน"
;
break
;
default
:
value1=
""
;
break
;
}
return
value1;
}
}
}
๒. การใช้งานโค้ด
เมื่อเราสร้างไฟล์ดังกล่าวเรียบร้อยแล้ว ผมจะแสดงตัวอย่างด้วยการสร้างฟอร์มตามภาพนี้
เมื่อสร้างฟอร์มเรียบร้อยผมเขียนโค้ดทดสอบได้ดังนี้
using System;
using System.Drawing;
using System.Windows.Forms;
using Test1.Models;
namespace Test1
{
///
/// Description of frmTestThaiBaht.
///
public partial class frmTestThaiBaht : Form
{
//ประกาศตัวแปรสำหรับเรียกใช้ฟังก์ชั่น
private ThaibahtMgr tb = new ThaibahtMgr();
public frmTestThaiBaht()
{
InitializeComponent();
}
void Button1Click(object sender, EventArgs e)
{
//ให้ค่าตัวเลข เป็นตัวหนังสือ
label2.Text=tb.Process(textBox1.Text);
}
}
}
ก็หวังว่าจะมีประโยชน์สำหรับคนที่กำลังหาโค้ดอยู่นะครับ
No comments:
Post a Comment