Function TachChu(TargetText As String, TextType As String, Optional Signal As String)
Dim ResultText As String
Dim TextLenth, ZZ, Ordinal As String
Dim ZPoint(1000, 1) As Variant
IZ = -1
Ordinal = "2"
TextLenth = Len(TargetText) 'Dem so ky tu trong chuoi
If TextLenth = 0 Then
TachChu = "": Exit Function
Else
If TextType = 0 Then 'Quet ky tu ABC
'Quet cac ky tu tu trai qua phai, ky tu nao la dang ABC thi cho vao bang luu
For ZZ = 1 To TextLenth
If Asc((Mid(TargetText, ZZ, 1))) <> 63 Then
ResultText = ResultText + Mid(TargetText, ZZ, 1)
IZ = IZ + 1
ZPoint(IZ, 0) = ZZ
ZPoint(IZ, 1) = Mid(TargetText, ZZ, 1)
End If
Next ZZ
Else
' Quet cac ky tu tu trai qua phai, ky tu nao khong phai la dang ABC thi cho vao bang luu:
For ZZ = 1 To TextLenth
If Asc((Mid(TargetText, ZZ, 1))) = 63 Then
ResultText = ResultText + Mid(TargetText, ZZ, 1)
IZ = IZ + 1
ZPoint(IZ, 0) = ZZ
ZPoint(IZ, 1) = Mid(TargetText, ZZ, 1)
End If
Next ZZ
End If
'=================================================
'Gan gia tri tim duoc dau tien vao ket qua
ResultText = ZPoint(0, 1)
For JZ = 1 To IZ
If ZPoint(JZ, 0) - ZPoint(JZ - 1, 0) = 1 Then
ResultText = ResultText + ZPoint(JZ, 1)
Else
ResultText = ResultText + Signal + Ordinal + "-" + ZPoint(JZ, 1)
Ordinal = Ordinal + 1
End If
Next JZ
End If
TachChu = ResultText
End Function