注册 登录
编程论坛 VB6论坛

从 text 中读数进入二维数组,老是类型不匹配,求大神指点,

yangfang577 发布于 2014-07-14 17:41, 667 次点击
Private Sub Command1_Click()
Dim str1() As String
Dim str2() As String
Dim arr() As String
Dim rows As Integer
Dim i As Integer
Dim j As Integer
rows = Text2.Text
ReDim Preserve str1(rows) As String
str1(rows) = Split(Text1, Chr(13) + Chr(10))
ReDim arr(rows, 5) As String
For i = 0 To rows - 1
str2 = Split(str1(i), ",")
For j = 1 To 5
arr(i, j) = str2(j)
Print "arr(" & i & "," & j & ")=" & arr(i, j),
Next
Print
Next
End Sub
4 回复
#2
风吹过b2014-07-15 14:58
老实说,实在是没看懂:

ReDim Preserve str1(rows) As String
str1(rows) = Split(Text1, Chr(13) + Chr(10))
--------------------
Split函数      

描述
返回一个下标从零开始的一维数组,它包含指定数目的子字符串。
语法
Split(expression[, delimiter[, count[, compare]]])
--------------------
Split 会把一维数组重定义,也就是 返回值不能给一个数组里的元素,而是给一个 数组。
所以你这里,这句,我搞不懂你要干什么。

代码没去测试。
#3
yangfang5772014-07-15 18:19
回复 2 楼 风吹过 b
好吧  其实我是想从text中读取多行数值进入二维数组  二维数组为n*5   新手 真的不懂vb  求大神呀 感激不尽!
#4
风吹过b2014-07-15 19:16
是一次性读入吗?

Dim str1() As String
Dim str2() As String
Dim arr() As String
Dim rows As Integer
Dim i As Integer
Dim j As Integer

str1 = Split(Text1, Chr(13) + Chr(10))         '此命令会自动重定义数组大小
rows=ubound(str1)            '最元素个数
ReDim arr(rows, 5) As String    '重定义目标数组
For i = 0 To rows           '遍类所有的元素
str2 = Split(str1(i), ",")   
For j = 0 To 5            'str2 的下标从 0 开始,参考我2楼的命令解释
'这里有BUG,如果元素个数不到6个,会导致 下标越界 错误,需要加判断或使用错误捕捉跳过
    arr(i, j) = str2(j)
    Print "arr(" & i & "," & j & ")=" & arr(i, j),
Next
Print
Next
#5
yangfang5772014-07-15 21:40
回复 4 楼 风吹过 b
谢谢大神,感激不尽!!
1