VB的 一个程序运行时 遇到点问题 寻求帮助

来源:百度知道 编辑:UC知道 时间:2024/05/09 03:29:45
输入为: a 3b 6f 注:这个式子两边都有空格
输出就遇到问题了 请大家指教一下。
Private Sub Command1_Click()
x = Text1.Text
k = Len(x)
Dim s() As String
Dim m2() As Integer
Dim stant() As String
ReDim s(k)
ReDim m2(k)
ReDim stant(k)

s1 = InStr(1, x, " ")
run = 0
For i = 1 To k - 1
s2 = InStr(s1 + 1, x, " ")
run = run + 1
s(run) = Mid(x, s1 + 1, s2 - s1 - 1)
If Len(s(run)) = 1 Then
m2(run) = 1
stant(run) = s(run)
Else
m2(run) = Mid(s(run), 1, Len(s(run)) - 1)
stant(run) = Mid(s(run), Len(s(run)), 1)
End If
s1 = s2
Text3.Text = Text3.Text & m2(run)
Text4.Text = Text4.Text & stant(run)
Next
End Sub
其实 我的目的很简单 就是把 输入值中的数字和里面其他字母符号之类分开
里面的输入值 我经过处理后 在每个数字和符号的组合两边 都加了空格
剩下的 我只要把它给分开就行
但是都得编上号
如果只是一个字母的话 如 a 那么 m2(run)就等于1 其他的就照值了

run = 0
For i = 1 To k - 1
s2 = InStr(s1 + 1, x, " ")
If s2 = 0 Then Exit For '加上这句就好了。
run = run + 1
s(run) = Mid(x, s1 + 1, s2 - s1 - 1)

答案补充

我重写了你的代码,简短很多
两个输出分别是
136
abf
不知道对不对

以下是我的代码,(就算前后多打了空格也可以处理)

Dim getStr As String
Dim splitStr() As String
Dim m2() As Integer
Dim stant() As String
Dim k As Integer

getStr = Trim(TextBox1.Text)
splitStr = Split(getStr, " ")
k = splitStr.Length

ReDim m2(k)
ReDim stant(k)

For i = 0 To k - 1
If Len(splitStr(i)) = 1 Then
m2(i) = 1
stant(i) = splitStr(i)
Else
m2(i) = CInt(Mid(splitStr(i), 1, 1))
stant(i) = Mid(splitStr(i), 2)
End If
Label1.Text