【问题标题】:For Looping in VB6VB6中的循环
【发布时间】:2013-09-10 07:54:12
【问题描述】:

我有这样的代码...

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 : 抱歉英语不好:)

【问题讨论】:

    标签: vb6


    【解决方案1】:

    去掉开始 FOR 循环的行和结束它的行(NEXT 语句)

    你正在循环,没有必要。

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

    删除这两行应该没问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-04
      • 2016-11-01
      相关资源
      最近更新 更多