[VB6] การนับจำนวนคำที่ต้องการ ด้วยการประยุกต์ใช้งานคำสั่งภายใน InStr (In String)
ฟังค์ชั่น หรือคำสั่งภายใน Instr มีประโยชน์เอาไว้สำหรับการค้นหาคำที่ต้องการ หากมันค้นหาเจอ ก็จะคืนค่าตำแหน่งแรก ซึ่งเป็นเลขจำนวนเต็มที่เจอกลับไป แต่หากไม่ใช่ก็จะคืนค่ากลับเป็น 0 เมื่อเรารู้หลักการนี้ ก็นำมาประยุกต์ใช้ในการนับจำนวนคำได้นั่นเอง ...Option Explicit
Private Sub Form_Load()
MsgBox InStrCount("ABCDABEDAASBAABC", "AB")
'MsgBox InStrCount("", "AB")
End
End Sub
'// ฟังค์ชั่นการนับคำ ด้วยการประยุกต์คำสั่ง InStr
Public Function InStrCount( _
String1 As String, _
String2 As String, _
Optional ByVal Pos As Long = 1, _
Optional Compare As VbCompareMethod = vbBinaryCompare _
) As Long
Dim LenString As Long
LenString = Len(String2)
'// ความยาวของ String ที่นำมาเปรียบเทียบ ต้องไม่เท่ากับหรือน้อยกว่า 0
If LenString Then
'// Trap Error ค่าที่น้อยกว่า 1 (ก็คือค่า 0 นั่นแหละ) ก็กำหนดค่าให้เป็น 1
If Pos < 1 Then Pos = 1
'//
Do
'// ค้นหาคำด้วยฟังค์ชั่น InStr (In String) หากเจอก็จะคืนค่าตำแหน่งแรกที่เจอ หากไม่ใช่จะคืนค่ากลับเป็น 0
Pos = InStr(Pos, String1, String2, Compare)
'// ใช้ตัวแปร Pos เป็นเงื่อนไข หากมีค่าไม่เท่ากับหรือน้อยกว่า 0 ก็ให้นับจำนวนเพิ่มขึ้น 1
If Pos Then
'// นับจำนวนครั้งที่ค้นหาเจอ
InStrCount = InStrCount + 1
'// เลื่อนตำแหน่งใหม่ โดยคิดจากตำแหน่งที่เจอ + ความยาวของคำค้นหา
Pos = Pos + LenString
Else
Exit Function
End If
Loop
End If
End Function
หน้า:
[1]