7,763
社区成员
发帖
与我相关
我的任务
分享
Option Explicit
Private Const LB_FINDSTRINGEXACT = &H1A2
Private Declare Function SendMessagebyString Lib _
"user32" Alias "SendMessageA" (ByVal hWND As Long, _
ByVal wMsg As Long, ByVal wParam As Long, _
ByVal lParam As String) As Long
Private Sub Command1_Click()
Dim strText As String
Dim strTemp As String
Dim strHead As String
Dim i As Long, j As Long, k As Long, w As Long
List1.Clear
For i = 1 To Len(Text1.Text)
List1.AddItem Mid(Text1, i, 1)
Next i
For i = 0 To List1.ListCount - 1
strText = strText & List1.List(i)
Next i
List1.Clear
For i = 1 To Len(strText) - 1
strHead = Left(strText, 1)
strText = Mid(strText, 2)
w = Len(strText)
For j = 1 To w
For k = 1 To w - j + 1
strTemp = strHead & Mid(strText, k, j)
If -1 = SendMessagebyString(List1.hWND, LB_FINDSTRINGEXACT, -1, strTemp) Then
List1.AddItem strTemp
End If
Next
Next
Next
strText = Text1
For i = 1 To Len(strText) - 1
strHead = Left(strText, 1)
strText = Mid(strText, 2)
w = Len(strText)
For j = 1 To w
For k = 1 To w - j + 1
strTemp = strHead & Mid(strText, k, j)
If -1 = SendMessagebyString(List1.hWND, LB_FINDSTRINGEXACT, -1, strTemp) Then
List1.AddItem strTemp
End If
Next
Next
Next
End Sub
AB
ABB
ABBC
ABBCC
ABBCCD
ABC
ABCB
ABCBC
ABCBCD
ABCC
ABCCD
ABCD
AC
ACB
ACBC
ACBCD
ACC
ACCD
ACD
AD
BB
BBC
BBCC
BBCCD
BBCD
BC
BCB
BCBC
BCBCD
BCC
BCCD
BCD
BD
CB
CBC
CBCD
CC
CCD
CD
Option Explicit
Private Const LB_FINDSTRINGEXACT = &H1A2
Private Declare Function SendMessagebyString Lib _
"user32" Alias "SendMessageA" (ByVal hWND As Long, _
ByVal wMsg As Long, ByVal wParam As Long, _
ByVal lParam As String) As Long
Private Sub Command1_Click()
Dim strText As String
Dim strTemp As String
Dim strHead As String
Dim i As Long, j As Long, k As Long, w As Long
strText = Text1
List1.Clear
For i = 1 To Len(strText) - 1
strHead = Left(strText, 1)
strText = Mid(strText, 2)
w = Len(strText)
For j = 1 To w
For k = 1 To w - j + 1
strTemp = strHead & Mid(strText, k, j)
If -1 = SendMessagebyString(List1.hWND, LB_FINDSTRINGEXACT, -1, strTemp) Then
List1.AddItem strTemp
End If
Next
Next
Next
End Sub
Text1 = “ABCBCD”
List1 (Sorted = True):
AB
ABC
ABCB
ABCBC
ABCBCD
ABCD
AC
ACB
ACBC
ACBCD
ACD
AD
BB
BBC
BBCD
BC
BCB
BCBC
BCBCD
BCD
BD
CB
CBC
CBCD
CC
CCD
CD
Option Explicit
Private Sub Command1_Click()
Dim strText As String
Dim strTemp As String
Dim i&, j&, k&, w&
strText = "ABCDE"
For i = 1& To Len(strText) - 1&
strTemp = Mid$(strText, 1&, 1&)
strText = Mid$(strText, 2&)
w = Len(strText)
For j = 1& To w
For k = 1& To 1& + w - j
Debug.Print strTemp & Mid$(strText, k, j)
Next
Next
Next
End Sub
输出结果:
AB
AC
AD
AE
ABC
ACD
ADE
ABCD
ACDE
ABCDE
BC
BD
BE
BCD
BDE
BCDE
CD
CE
CDE
DE
Private Sub Command1_Click()
Dim strSource As String
Dim strSub As String, i As Integer, j As Integer
For i = 1 To Len(Text1) - 1
For j = 2 To Len(Text1) - i + 1
List1.AddItem Mid(Text1, i, j)
Next j
Next i
End Sub