用于VB6中的循环

时间:2013-09-09 07:46:25

标签: vb6

我有这样的代码......

Dim sFileText As String
Dim Files As String
Dim iFileNo As Integer

Dim aray1() As String
Dim aray2() As String

Grid(1).Rows = 1

iFileNo = FreeFile
Files = Text1.Text

Open Files For Input As #iFileNo

Do While Not EOF(iFileNo)

Input #iFileNo, sFileText

aray1 = Split(sFileText, Chr(9))

For i = 0 To UBound(aray1) - 1
' MsgBox aray1(i)
 Grid(1).Rows = Grid(1).Rows + 1

 Grid(1).TextMatrix(Grid(1).Rows - 1, 0) = aray1(0)
 Grid(1).TextMatrix(Grid(1).Rows - 1, 1) = aray1(1)
 Grid(1).TextMatrix(Grid(1).Rows - 1, 2) = aray1(2)
 Grid(1).TextMatrix(Grid(1).Rows - 1, 3) = aray1(3)
 Grid(1).TextMatrix(Grid(1).Rows - 1, 4) = aray1(4)
 Grid(1).TextMatrix(Grid(1).Rows - 1, 5) = aray1(5)
Next i

Loop

结果是这样的(抱歉我无法显示图像):

36 2012-10-20 08:59:34 1 255 1 0
36 2012-10-20 08:59:34 1 255 1 0
36 2012-10-20 08:59:34 1 255 1 0
36 2012-10-20 08:59:34 1 255 1 0
36 2012-10-20 08:59:34 1 255 1 0
110 2012-10-20 09:45:00 1 255 1 0
110 2012-10-20 09:45:00 1 255 1 0
110 2012-10-20 09:45:00 1 255 1 0
110 2012-10-20 09:45:00 1 255 1 0
110 2012-10-20 09:45:00 1 255 1 0

每个人都知道MSFlexGrid中每条记录只显示一次代码吗? 它在每个记录中显示5次..

P.S:抱歉英语不好:)

1 个答案:

答案 0 :(得分:2)

摆脱启动FOR循环的行和结束它的行(NEXT语句)

你正在循环,没有必要。

基本上,对于FOR NEXT循环,您在网格中添加一个新行,对于数组中的每个元素(列)(aray1)而不是每一行。

删除这两行,你应该没事。