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

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

[VB6] การตัดค่า NULL ซึ่งมีค่า ASCII Code เท่ากับ 0 ทิ้งออกไป

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

252

กระทู้

370

โพสต์

3090

เครดิต

ผู้ดูแลระบบ

Rank: 9Rank: 9Rank: 9

เครดิต
3090



Null Value มักเป็นค่าไม่พึงประสงค์เท่าไหร่นัก ส่วนใหญ่จะหลงโผล่มาจากการอ่านค่า Serial Number ของอุปกรณ์ทางด้านฮาร์ดแวร์ ซึ่งค่า Null ไม่ใช่ค่าช่องว่าง หรือ Space นะครับ มันเป็นคนละตัวกัน เพราะ Null จะมีค่า ASCII Code = 0 ส่วน Space จะมีค่า ASCII Code = 32 (ฐาน 10)
  1. Private Sub Form_Load()
  2.     MsgBox TrimNull("ABCD" & Chr$(0) & Chr$(0) & Chr$(0))
  3. End Sub

  4. Public Function TrimNull(StringCheck As String) As String
  5.    
  6.     Dim strNull As String
  7.     Dim nPos As Integer
  8.    
  9.     '// ใช้คำสั่ง (หรือฟังค์ชั่น) InStr เพื่อค้นหาค่า Null ตัวแรก ...กรณีนี้เจอค่า Null ในตำแหน่งที่ 5 ... ดังนั้น nPos = 5
  10.     nPos = InStr(StringCheck, Chr$(0))
  11.    
  12.     Select Case nPos
  13.         '// Is ก็คือ nPos นั่นแหละครับ ... เคยใช้กันบ้างหรือเปล่า 55555+
  14.         Case Is > 1
  15.             '// ให้นับค่า String ที่ส่งมายังฟังค์ชั่น จากซ้ายไปตามจำนวนของ nPos แล้วลบออกด้วย 1 ก็จะได้คำตอบ คือ ตัดค่า Null ทิ้งไปทั้งหมด
  16.             strNull = Left(StringCheck, nPos - 1)
  17.         Case 1
  18.             strNull = ""
  19.         Case Else
  20.             strNull = StringCheck
  21.     End Select
  22.    
  23.     '// ส่งค่าคืนกลับผ่านฟังค์ชั่น
  24.     TrimNull = strNull
  25. End Function
คัดลอกไปที่คลิปบอร์ด



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

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

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

GMT+7, 2020-9-30 00:47 , Processed in 0.233201 second(s), 4 queries , File On.

Powered by Discuz! X3.3 R20170401, Rev.54

© 2001-2017 Comsenz Inc.

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