ชุมชนคนรักภาษาเบสิค - Visual Basic Community

 ลืมรหัสผ่าน
 ลงทะเบียน
ค้นหา
ดู: 5470|ตอบกลับ: 0

[VB6] แปลงตัวเลขไทยเป็นเลขอารบิค และ แปลงเลขอารบิคเป็นเลขไทย

[คัดลอกลิงก์]

320

กระทู้

512

โพสต์

6583

เครดิต

ผู้ดูแลระบบ

ทองก้อน ทับทิมกรอบ

Rank: 9Rank: 9Rank: 9

เครดิต
6583



การแก้ปัญหาก็ไม่ได้ยากเย็นอะไรเลย อาศัยหลักการของ ASCII Code อีกแล้วครับท่านผู้ชม ดังนี้คือ ...
(หมายเหตุ: ตัวเลขแต่ละตัวปกติเราจะเรียกว่า ตัวอักขระ หรือ Character มากกว่านะครับ)

เลข 0 จะมีค่า 48 (ฐาน 10)
เลข 1 จะมีค่า 49 (ฐาน 10)
...
เลข 9 จะมีค่า 57 (ฐาน 10)

เลข ๐ จะมีค่า 240 (ฐาน 10)
เลข ๑ จะมีค่า 241 (ฐาน 10)
...
เลข ๙ จะมีค่า 249 (ฐาน 10)

จากเลขไทย - อารบิค หากจับคู่กัน เช่น 1 กับ ๑ ก็จะมีค่าตัวเลขฐาน 10 อยู่ห่างกัน 192 ค่า

หากเราต้องการแปลงจากเลข 1 อารบิค ก็จะมีค่า ASCII Code = 49 ให้บวกไปอีก 192 ก็จะได้ 241 ใช้คำสั่ง Asc(241) ก็จะได้เลข ๑
หากเราต้องการแปลงจากเลข ๑ ไทย ก็จะมีค่า ASCII Code = 241 ต้องลบออก 192 ก็จะได้ 49 ใช้คำสั่ง Asc(49) ก็จะได้เลข 1
  1. Option Explicit

  2. Private Sub Form_Load()
  3.     Dim strThai As String
  4.     Dim strEng As String
  5.     '// ข้อมูลทดสอบ
  6.     strThai = "๒๕๘๙๖๓๑๔๗"
  7.     strEng = "258963147"
  8.     MsgBox "Thai to Eng : " & NumThai2Eng(strThai) & vbCrLf & "Eng to Thai : " & NumEng2Thai(strEng)
  9.     End
  10. End Sub

  11. '// ฟังค์ชั่นแปลงเลขไทยเป็นอารบิค
  12. Function NumThai2Eng(strThai As String) As String
  13.     Dim strEng As String
  14.     Dim strTemp As String
  15.     Dim i As Byte
  16.     '//strThai = "๐๑๒๓๔๕๖๗๘๙"
  17.     For i = 1 To Len(strThai)
  18.         strTemp = Asc(Mid$(strThai, i, 1)) - 192
  19.         strEng = strEng & Chr(strTemp)
  20.     Next
  21.     NumThai2Eng = strEng
  22. End Function

  23. '// ฟังค์ชั่นแปลงเลขอารบิคเป็นไทย
  24. Function NumEng2Thai(strEng As String) As String
  25.     Dim strThai As String
  26.     Dim strTemp As Byte
  27.     Dim i As Byte
  28.     'strEng = "258963147"
  29.     For i = 1 To Len(strEng)
  30.         strTemp = Asc(Mid$(strEng, i, 1)) + 192
  31.         strThai = strThai & Chr(strTemp)
  32.     Next
  33.     NumEng2Thai = strThai
  34. End Function
คัดลอกไปที่คลิปบอร์ด

สิ่งที่ดีกว่าการให้ คือการให้แบบไม่มีที่สิ้นสุด
ขออภัย! คุณไม่ได้รับสิทธิ์ในการดำเนินการในส่วนนี้ กรุณาเลือกอย่างใดอย่างหนึ่ง ลงชื่อเข้าใช้ | ลงทะเบียน

รายละเอียดเครดิต

ข้อความล้วน|อุปกรณ์พกพา|ประวัติการแบน|G2GNet.com  

GMT+7, 2024-11-27 21:44 , Processed in 0.185902 second(s), 4 queries , File On.

Powered by Discuz! X3.4, Rev.62

Copyright © 2001-2020 Tencent Cloud.

ตอบกระทู้ ขึ้นไปด้านบน ไปที่หน้ารายการกระทู้