明天就要考vb了,急急急!!!求大神帮忙解释下这段代码

OptionExplicitOptionBase1PrivateSubCommand1_Click()Dima()AsInteger,b()AsInteger,c()As... Option Explicit
Option Base 1
Private Sub Command1_Click()
Dim a() As Integer, b() As Integer, c() As Integer
Dim i() As Integer, st() As String
st = Trim(Text1)
Call load_a(st, a)
st = Trim(Text2)
Call load_a(st, b)
ReDim c(1)
c(1) = a(1)
For i = 2 To UBound(a)
Call change(a(i), c)
Next i
For i = 1 To UBound(b)
Call change(b(i), c)
Next i
For i = 1 To UBound(c)
Text3 = Text3 & Str(c(i))
Next i
End Sub
Private Sub load_a(s As String, a() As Integer)
Dim i As Integer, k As Integer, p As String, q As String * 1
For i = 1 To Len(s)
q = Mid(s, i, 1)
If q >= "0" And q <= "9" Or q = "-" Then
p = p & q
ElseIf p <> "" Then
k = k + 1
ReDim Preserve a(k)
a(k) = Val(p)
p = ""
End If
Next i
If p <> "" Then
ReDim Preserve a(k + 1)
a(k + 1) = p
End If
End Sub
Private Sub change(n As Integer, c() As Integer)
Dim i As Integer, j As Integer
ReDim Preserve c(UBound(c) + 1)
For i = 1 To UBound(c) - 1
If n > c(i) Then
For j = UBound(c) To i + 1 Step -1
c(j) = c(j - 1)
Next j
Exit For
End If
Next i
c(i) = n
End Sub
展开
 我来答
坚牧08T
2013-10-23 · TA获得超过243个赞
知道小有建树答主
回答量:325
采纳率:66%
帮助的人:136万
展开全部
这段函数涉及到三个文本框,Text1和Text2是放输入的字符串的,形式如“23中国 398-123的我们是1和2这样的”,text3是放输出的,输出的结果形式如"23,275,1,2"。
还涉及到两个过程:
load_a(S,A())参数S是输入的字符串,A()是变长的integer数组。功能是:把输入字符串中的连续数字和-号的值插入到变长integer数组中保存。
change(N,C()))参数N是要插入值,C()是待插入的数组,因为每次都是有序的插入,所以这个数组一直保持着升序排列。

重点语句注释
q = Mid(s, i, 1)'针对每一个字符
If q >= "0" And q <= "9" Or q = "-" Then
p = p & q'如果是数字或-号,记录在P中
ElseIf p <> "" Then'不是数字或-号时
k = k + 1
ReDim Preserve a(k)'把上次的连续数字或-号写入到数组中去
a(k) = Val(p)'注意写入的是字符串的值不是字符串
p = ""'清空记录
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式