首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

数据匹配解决方法

2011-12-29 
数据匹配设我的表中,其中有两个字段,数据类型相同,想找出连续相同的最大值情况,如字段1 字段2002232323323

数据匹配
设我的表中,其中有两个字段,数据类型相同,想找出连续相同的最大值情况,如
字段1 字段2
0                   0                
2                   2  
3                   2  
3                   2
3                   3
2                   3
3                   3
3                   2
2                   1
1                   0
0                   9
2                   0

最大的匹配结果应该是2,3,3,3,2
请各位大侠帮忙!先谢了
3


[解决办法]
S和L被调用后 结果为 S代表 最大匹配串的开始位置 L代表 匹配长度

我给个完整的 调用吧
Public Sub zdppc(STR1() As String, STR2() As String, S As Integer, L As Integer)
Dim X As Integer, Y As Integer, K As Integer, MAX As Integer
Dim Kt As Integer, LsX As Integer, LsY As Integer
LsX = UBound(STR1)
LsY = UBound(STR2)
For X = 1 To LsX
K = 0
Kt = X
For Y = 1 To LsY
If Kt > LsY Then Exit For
If MAX > K + LsY - Y Then Exit For
If STR1(Kt) = STR2(Y) Then
Kt = Kt + 1
K = K + 1
Else
Kt = 1
If K > MAX Then
MAX = K
S = X
End If
K = 0
End If
Next
If K > MAX Then
MAX = K
S = X
End If
Next
L = MAX
End Sub

Private Sub Form_Click()
Dim S As Integer, L As Integer, STR1(4) As String, STR2(4) As String
Dim X As Integer, ST As String
STR1(1) = "1 "
STR1(2) = "2 "
STR1(3) = "3 "
STR1(4) = "4 "
STR2(1) = "2 "
STR2(2) = "3 "
STR2(3) = "4 "
STR2(4) = "5 "

zdppc STR1, STR2, S, L
Print S, L
ST = STR1(S)
For X = S + 1 To S + L - 1
ST = ST & ", " & STR1(X)
Next
Print ST
End Sub
'上面的 STR1 和 STR2 你要根据你数据库把 数据赋值给这2个数组

热点排行