有个vb数组赋值问题

有个vb问题,求大虾提点下,搞不懂

问题如下:
一个字符串如: "000,120,140,235"

用 Split 按照","取成数组分别放入a()
再用循环读出每一组里面的每个元素,放入变量

问题出现了:第一位为非0数时,其中的0可以读出来,第一位为0或者00时,读出来的是空值,

有大侠碰到过这样的问题么,求指导啊,谢谢了

如果你用一个变体类型的变量来Split成一个数组,那么数值型数据将被分配成整形或者浮点类型的数值。

对于数值型的数据来说:000,00,00000,0都是一样的,都表示0。而且在VB里面也只会认为是0。

但是,像100,这样的数字,后面的0是不能省略的,数学常识。

只有当一个数字,用字符串型表示的时候,"000"和"000000"才有区别。

所以,我们直接定义一个字符串类型的动态数组来读取该数据,这样,所有的数值型元素也将被当做字符串来看待,这样"000"就是一个长度为3的字符串了。如下:

Sub Command1_Click()
    Dim arr() As String
    arr = Split("000,120,140,235", ",")
    Dim i As Integer
    For i = 1 To 3
        Print i & "=" & Mid(arr(0), i, 1)
    Next
End Sub

追问

我也是定义的str,但是还是不行

追答

Dim s as string, K as String
Dim G as String , J As String , M As String , N as String
这里的as String一个都不要省略,你再试试。
一个误区:
Dim G,J,M,N as String,通过这种方法定义的变量,G,J,M均为变体类型的变量,只有N是字符串型。并不是想象中的G,J,M也为String类型的变量的。必须显式的指定每一个变量的类型才行。

字符串变量定义的简写方法:
Dim s$,K$
Dim G$,J$,M$,N$

追问

加Q可以么,120728482

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-06-02
有这事吗?你有没有把变量定义为字符串类型

我用vb试了下,split 返回的默认为字符串类型数组
赋给的变量类型,通用型和字符串类型的都可以。只数值类型的变量,那就变成一个0了。
第2个回答  2013-06-02
要看代码才知道问题在哪。会不会是变量类型错误,数组和变量也要是字符型的

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网