ศึกษา c# เองจาก Internet ครับ (หาซื้อหนังสือไม่ได้ ที่เห็นๆยังมีขายออนไลน์ตอนนี้ก็ c#3.0(เห็นเขาว่าเล่มดัง) แต่ก็เก่าไปหน่อย น้อยใจทำไมหนังสือ Java หาง่ายกว่ามาก T_T.....
) ตอนนี้อ่านจบเรื่อง delegate ก็ยังติดงงๆอยู่ แต่อ่านเรื่อง BackgroundWorker เข้าใจดี เห็น Code นี้พยายามทำความเข้าใจกับมันมาหลายวัน(ไม่เกี่ยวกับ Delegate หรือ Worker) แต่แปลกที่อ่านยังไงก็ไม่เข้าใจ(สงสัยยังอ่อนอยู่ ฮา) ตอนนี้ว่าจะไปอ่านเล่ม Fundamentals of Computer Programming with CSharp Nakov 2013 หรือไม่ก็ microsoft visual c-sharp 2013 stepฺBystep (มีใครทราบบ้าง?)
เข้าเรื่องดีกว่าได้ถามทีถามเป็นชุด ฮา รบกวนผู้รู้อธิบายละเอียดๆให้ด้วยนะครับ หมายเหตุ Code ที่ 1 copy มาจาก StackOverFlow และ Code ที่ 2 มีคนเผยแพร่ในเว็บไทยแต่จำไม่ได้ว่าเว็บไหน ขออนุญาตเจ้าของ Code ด้วยนะครับ
public static string NumberToWords(int number)
{
if (number == 0)
return "zero";
if (number < 0)
return "minus " + NumberToWords(Math.Abs(number));
string words = "";
if ((number / 1000000) > 0)
{
words += NumberToWords(number / 1000000) + " million ";
number %= 1000000;
}
if ((number / 1000) > 0)
{
words += NumberToWords(number / 1000) + " thousand ";
number %= 1000;
}
if ((number / 100) > 0)
{
words += NumberToWords(number / 100) + " hundred ";
number %= 100;
}
if (number > 0)
{
if (words != "") // บรรทัดนี้ใช้คำสั่ง word != null แทนได้หรือไม่ ยังงงๆกับ null อยู่ครับ
words += "and ";
var unitsMap = new[] { "zero", "one", "two", "three", "four",
"five", "six", "seven", "eight", "nine", "ten", "eleven", "twelve",
"thirteen", "fourteen", "fifteen", "sixteen", "seventeen", "eighteen",
"nineteen" };
var tensMap = new[] { "zero", "ten", "twenty", "thirty",
"forty", "fifty", "sixty", "seventy", "eighty", "ninety" };
if (number < 20)
words += unitsMap[number];
else
{
words += tensMap[number / 10];
if ((number % 10) > 0)
words += "-" + unitsMap[number % 10];
}
}
return words;
}
static void Main(string[] args) // หมายเหตุ MeThod นี้ข้าพเจ้าใส่เข้าไปเอง แต่ตอนนี้พยายามแปลงในรูป windows Form ยังมึนอยู่จ้า เนื่องจากยังไม่เข้าใจด้านบน
{
int number = int.Parse(Console.ReadLine());
Console.WriteLine("{0}", NumberToWords(number));
Console.ReadKey();
}
//Code ที่2
public static string numConvertChar(string txt)
{
string bahtTxt, n, bahtTH = "";
double amount;
try { amount = Convert.ToDouble(txt); }
catch { amount = 0; }
bahtTxt = amount.ToString("####.00");
string[] num = { "ศูนย์", "หนึ่ง", "สอง", "สาม", "สี่", "ห้า", "หก", "เจ็ด", "แปด", "เก้า", "สิบ" };
string[] rank = { "", "สิบ", "ร้อย", "พัน", "หมื่น", "แสน", "ล้าน" };
string[] temp = bahtTxt.Split('.');
string intVal = temp[0];
string decVal = temp[1];
if (Convert.ToDouble(bahtTxt) == 0)
bahtTH = "ศูนย์บาทถ้วน";
else
{
for (int i = 0; i < intVal.Length; i++)
{
n = intVal.Substring(i, 1);
if (n != "0")
{
if ((i == (intVal.Length - 1)) && (n == "1"))
bahtTH += "เอ็ด";
else if ((i == (intVal.Length - 2)) && (n == "2"))
bahtTH += "ยี่";
else if ((i == (intVal.Length - 2)) && (n == "1")) //บรรทัดนี้ลองลบออกแล้วแทนค่าต่างๆโปรแกรมก็ปกติ งง
bahtTH += "";
else
bahtTH += num[Convert.ToInt32(n)];
bahtTH += rank[(intVal.Length - i) - 1];
}
}
bahtTH += "บาท";
if (decVal == "00")
bahtTH += "ถ้วน";
else
{
for (int i = 0; i < decVal.Length; i++)
{
n = decVal.Substring(i, 1);
if (n != "0")
{
if ((i == decVal.Length - 1) && (n == "1"))
bahtTH += "เอ็ด";
else if ((i == (decVal.Length - 2)) && (n == "2"))
bahtTH += "ยี่";
else if ((i == (decVal.Length - 2)) && (n == "1")) //บรรทัดนี้ลองลบออกโปรแกรมก็ปกติเช่นกัน
bahtTH += "";
else
bahtTH += num[Convert.ToInt32(n)];
bahtTH += rank[(decVal.Length - i) - 1];
}
}
bahtTH += "สตางค์";
}
}
return bahtTH;
}
static void Main(string[] args) // Method นี้สร้างเอง
{
string Txt = Console.ReadLine();
Console.WriteLine("{0}", numConvertChar(Txt));
Console.ReadKey();
}
รบกวนด้วยครับ ข้าน้อยจนปัญญา
c# รบกวนผู้รู้อธิบาย Code ให้ฟังหน่อยครับ
เข้าเรื่องดีกว่าได้ถามทีถามเป็นชุด ฮา รบกวนผู้รู้อธิบายละเอียดๆให้ด้วยนะครับ หมายเหตุ Code ที่ 1 copy มาจาก StackOverFlow และ Code ที่ 2 มีคนเผยแพร่ในเว็บไทยแต่จำไม่ได้ว่าเว็บไหน ขออนุญาตเจ้าของ Code ด้วยนะครับ
public static string NumberToWords(int number)
{
if (number == 0)
return "zero";
if (number < 0)
return "minus " + NumberToWords(Math.Abs(number));
string words = "";
if ((number / 1000000) > 0)
{
words += NumberToWords(number / 1000000) + " million ";
number %= 1000000;
}
if ((number / 1000) > 0)
{
words += NumberToWords(number / 1000) + " thousand ";
number %= 1000;
}
if ((number / 100) > 0)
{
words += NumberToWords(number / 100) + " hundred ";
number %= 100;
}
if (number > 0)
{
if (words != "") // บรรทัดนี้ใช้คำสั่ง word != null แทนได้หรือไม่ ยังงงๆกับ null อยู่ครับ
words += "and ";
var unitsMap = new[] { "zero", "one", "two", "three", "four",
"five", "six", "seven", "eight", "nine", "ten", "eleven", "twelve",
"thirteen", "fourteen", "fifteen", "sixteen", "seventeen", "eighteen",
"nineteen" };
var tensMap = new[] { "zero", "ten", "twenty", "thirty",
"forty", "fifty", "sixty", "seventy", "eighty", "ninety" };
if (number < 20)
words += unitsMap[number];
else
{
words += tensMap[number / 10];
if ((number % 10) > 0)
words += "-" + unitsMap[number % 10];
}
}
return words;
}
static void Main(string[] args) // หมายเหตุ MeThod นี้ข้าพเจ้าใส่เข้าไปเอง แต่ตอนนี้พยายามแปลงในรูป windows Form ยังมึนอยู่จ้า เนื่องจากยังไม่เข้าใจด้านบน
{
int number = int.Parse(Console.ReadLine());
Console.WriteLine("{0}", NumberToWords(number));
Console.ReadKey();
}
//Code ที่2
public static string numConvertChar(string txt)
{
string bahtTxt, n, bahtTH = "";
double amount;
try { amount = Convert.ToDouble(txt); }
catch { amount = 0; }
bahtTxt = amount.ToString("####.00");
string[] num = { "ศูนย์", "หนึ่ง", "สอง", "สาม", "สี่", "ห้า", "หก", "เจ็ด", "แปด", "เก้า", "สิบ" };
string[] rank = { "", "สิบ", "ร้อย", "พัน", "หมื่น", "แสน", "ล้าน" };
string[] temp = bahtTxt.Split('.');
string intVal = temp[0];
string decVal = temp[1];
if (Convert.ToDouble(bahtTxt) == 0)
bahtTH = "ศูนย์บาทถ้วน";
else
{
for (int i = 0; i < intVal.Length; i++)
{
n = intVal.Substring(i, 1);
if (n != "0")
{
if ((i == (intVal.Length - 1)) && (n == "1"))
bahtTH += "เอ็ด";
else if ((i == (intVal.Length - 2)) && (n == "2"))
bahtTH += "ยี่";
else if ((i == (intVal.Length - 2)) && (n == "1")) //บรรทัดนี้ลองลบออกแล้วแทนค่าต่างๆโปรแกรมก็ปกติ งง
bahtTH += "";
else
bahtTH += num[Convert.ToInt32(n)];
bahtTH += rank[(intVal.Length - i) - 1];
}
}
bahtTH += "บาท";
if (decVal == "00")
bahtTH += "ถ้วน";
else
{
for (int i = 0; i < decVal.Length; i++)
{
n = decVal.Substring(i, 1);
if (n != "0")
{
if ((i == decVal.Length - 1) && (n == "1"))
bahtTH += "เอ็ด";
else if ((i == (decVal.Length - 2)) && (n == "2"))
bahtTH += "ยี่";
else if ((i == (decVal.Length - 2)) && (n == "1")) //บรรทัดนี้ลองลบออกโปรแกรมก็ปกติเช่นกัน
bahtTH += "";
else
bahtTH += num[Convert.ToInt32(n)];
bahtTH += rank[(decVal.Length - i) - 1];
}
}
bahtTH += "สตางค์";
}
}
return bahtTH;
}
static void Main(string[] args) // Method นี้สร้างเอง
{
string Txt = Console.ReadLine();
Console.WriteLine("{0}", numConvertChar(Txt));
Console.ReadKey();
}
รบกวนด้วยครับ ข้าน้อยจนปัญญา