vb的text控件
vb里的text控件,我要输入文档,有以下要求:不准出现两个和两个以上的连续空格。(因为我要以空格为间隔,用split函数得到数组)请问各位大哥大姐,这段程序怎么写?...
vb里的text控件,我要输入文档,有以下要求:不准出现两个和两个以上的连续空格。(因为我要以空格为间隔,用split函数得到数组)
请问各位大哥大姐,这段程序怎么写? 展开
请问各位大哥大姐,这段程序怎么写? 展开
4个回答
展开全部
我这种方法只过滤多余的空格。
Private Sub Command1_Click()
Dim a, str As String, i As Integer, j As Integer
For i = 1 To Len(Text1.Text) '遍历整个字符串
If Asc(Mid(Text1.Text, i, 1)) = 32 Then '当前字符是一个空格时
If Asc(Mid(Text1.Text, i + 1, 1)) <> 32 Then '如果下一个字符不是空格则跳过空格添加后面的内容
str = str & " " & Mid(str, i + 1)
End If
Else '当前字符不是空格则赋值到变量里
str = str & Mid(Text1.Text, i, 1)
End If
Next
a = Split(str) '以空格为分隔符取数组,并输出。
For j = 0 To UBound(a)
Print "第" & j + 1 & "个元素的值为:" & a(j)
Next
End Sub
Private Sub Command1_Click()
Dim a, str As String, i As Integer, j As Integer
For i = 1 To Len(Text1.Text) '遍历整个字符串
If Asc(Mid(Text1.Text, i, 1)) = 32 Then '当前字符是一个空格时
If Asc(Mid(Text1.Text, i + 1, 1)) <> 32 Then '如果下一个字符不是空格则跳过空格添加后面的内容
str = str & " " & Mid(str, i + 1)
End If
Else '当前字符不是空格则赋值到变量里
str = str & Mid(Text1.Text, i, 1)
End If
Next
a = Split(str) '以空格为分隔符取数组,并输出。
For j = 0 To UBound(a)
Print "第" & j + 1 & "个元素的值为:" & a(j)
Next
End Sub
展开全部
Private Sub Text1_KeyPress(KeyAscii As Integer)
If KeyAscii = 32 And Right(Text1.Text, 1) = " " Then
KeyAscii = 0
Endif
End Sub
If KeyAscii = 32 And Right(Text1.Text, 1) = " " Then
KeyAscii = 0
Endif
End Sub
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
ynisue方法好,直接在输入的时候就限制了,不能输入两个以上空格,代码简单,小弟也学习了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
根本就不需要限制的,直接
while instr(strl," ")<>0
replace(strl," "," ")
wend
就行了,分组前作,把2个空格替换成一个空格!
1楼的如果我在字符串中间加空格,还有个空格不再左边方向呢?
要么在KEYPRESS过程中加replace也行,避免循环了,虽然执行的次数更多!
while instr(strl," ")<>0
replace(strl," "," ")
wend
就行了,分组前作,把2个空格替换成一个空格!
1楼的如果我在字符串中间加空格,还有个空格不再左边方向呢?
要么在KEYPRESS过程中加replace也行,避免循环了,虽然执行的次数更多!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询