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

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

[VB6] การนับจำนวนคำที่ต้องการ ด้วยการประยุกต์ใช้งานคำสั่งภายใน InStr (In String)

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

308

กระทู้

498

โพสต์

5971

เครดิต

ผู้ดูแลระบบ

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

Rank: 9Rank: 9Rank: 9

เครดิต
5971

ฟังค์ชั่น หรือคำสั่งภายใน Instr มีประโยชน์เอาไว้สำหรับการค้นหาคำที่ต้องการ หากมันค้นหาเจอ ก็จะคืนค่าตำแหน่งแรก ซึ่งเป็นเลขจำนวนเต็มที่เจอกลับไป แต่หากไม่ใช่ก็จะคืนค่ากลับเป็น 0 เมื่อเรารู้หลักการนี้ ก็นำมาประยุกต์ใช้ในการนับจำนวนคำได้นั่นเอง ...


  1. Option Explicit

  2. Private Sub Form_Load()
  3.     MsgBox InStrCount("ABCDABEDAASBAABC", "AB")
  4.     'MsgBox InStrCount("", "AB")
  5.     End
  6. End Sub

  7. '// ฟังค์ชั่นการนับคำ ด้วยการประยุกต์คำสั่ง InStr
  8. Public Function InStrCount( _
  9.     String1 As String, _
  10.     String2 As String, _
  11.     Optional ByVal Pos As Long = 1, _
  12.     Optional Compare As VbCompareMethod = vbBinaryCompare _
  13.     ) As Long

  14.     Dim LenString As Long
  15.     LenString = Len(String2)
  16.    
  17.     '// ความยาวของ String ที่นำมาเปรียบเทียบ ต้องไม่เท่ากับหรือน้อยกว่า 0
  18.     If LenString Then
  19.         '// Trap Error ค่าที่น้อยกว่า 1 (ก็คือค่า 0 นั่นแหละ) ก็กำหนดค่าให้เป็น 1
  20.         If Pos < 1 Then Pos = 1
  21.         '//
  22.         Do
  23.             '// ค้นหาคำด้วยฟังค์ชั่น InStr (In String) หากเจอก็จะคืนค่าตำแหน่งแรกที่เจอ หากไม่ใช่จะคืนค่ากลับเป็น 0
  24.             Pos = InStr(Pos, String1, String2, Compare)
  25.             '// ใช้ตัวแปร Pos เป็นเงื่อนไข หากมีค่าไม่เท่ากับหรือน้อยกว่า 0 ก็ให้นับจำนวนเพิ่มขึ้น 1
  26.             If Pos Then
  27.                 '// นับจำนวนครั้งที่ค้นหาเจอ
  28.                 InStrCount = InStrCount + 1
  29.                 '// เลื่อนตำแหน่งใหม่ โดยคิดจากตำแหน่งที่เจอ + ความยาวของคำค้นหา
  30.                 Pos = Pos + LenString
  31.             Else
  32.                 Exit Function
  33.             End If
  34.         Loop
  35.     End If

  36. End Function
คัดลอกไปที่คลิปบอร์ด


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

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

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

GMT+7, 2024-3-28 16:14 , Processed in 0.169346 second(s), 4 queries , File On.

Powered by Discuz! X3.4, Rev.62

Copyright © 2001-2020 Tencent Cloud.

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