注册 登录
编程论坛 VB6论坛

字符串处理00000

wxflw 发布于 2020-03-03 16:16, 1624 次点击
有个问题请教各位老师:在文本框中输入数字,同时自动去掉字符串中无效的0,
是否可以在KeyPress中做到?我看好像只能在LostFocus事件中去做。
 如下字符串。
   数字:     结果:   
  0.0          0
  0080         80
  00.001       0.001
  0080.00100   80.001
上面是纯数字,如果前后含有字母要怎么处理,字母不在中间
如果是纯数字我用的Val()效果挺好的,但是如果前后含有字母就失效了。

2 回复
#2
wmf20142020-03-03 21:04
要看你怎么对待字母,可以写一个函数,用自己需要的字符替代字母(也可以是空字符),函数如下:
Function onlynum(a As String, b As String) As Double
  Dim i As Integer, c As String, d As String
  d = ".0123456789"
  If b <> "" Then b = Val(Left(b, 1))
  For i = 1 To Len(a)
    If InStr(d, Mid(a, i, 1)) > 0 Then
      c = c & Mid(a, i, 1)
    Else
      c = c & b
    End If
  Next
  onlynum = Val(c)
End Function

函数调用示范:
a=onlynum("a1234b.cd233","")  结果:a=1234.233,所有字母都被去掉
a=onlynum("a1234b.cd233","a") 结果:a=12340.00233,所有英文字母被0替代
a=onlynum("a1234b.cd233","5") 结果:a=512345.55233,所有英文字母被5替代
#3
wxflw2020-03-11 15:03
回复 2楼 wmf2014
师傅!你这个队处理字符串是挺好的,但是与我想达到的效果还是有差距的。
1