注册 登录
编程论坛 VB6论坛

想显示一个数组的内容,但提示缺少数组,大家帮忙分析下,谢谢。

wcwycp 发布于 2013-08-10 15:42, 700 次点击
VB如何读取数组里面的内容啊?是自义生成的一组数组。

Public Const SFEP_UFPDATA_SIZE = (498)
Public Type SFEP_USER_FPDATA
    rbData(SFEP_UFPDATA_SIZE - 1) As Byte
End Type



Dim stRegtem As SFEP_USER_FPDATA
Dim i As Byte

    If nEnrollCount = 3 Then
        lblStatus = "": lblStatus.Refresh
        nRet = SFEP_GetTemplateForRegister(stTemplates(0), stRegTem)

        If nRet <> RES_OK Then
            lblStatus = "Failed in get template for enroll!": lblStatus.Refresh
        Else
            nRet = SFEP_Enroll(stRegTem, dwID, bFingerNum, bManager)
'-----------------------------------------------------------------------------
            For i = LBound(stRegTem) To UBound(stRegTem)    ‘出现错误的地方
            Text1.Text = Text1.Text & Chr(10) & Str(stRegTem(i))
            'MsgBox stRegtem(i)
            Next
'-----------------------------------------------------------------------------
            If nRet <> RES_OK Then
                If nRet = ERR_DUPLICATED Then
                    lblStatus = "Duplicate!" + vbCrLf + "ID=" + Str(dwID) + ", FN=" + Str(bFingerNum)
                Else
                    lblStatus = "Failed Enroll!" + vbCrLf + "ERROR CODE = " + Str(nRet)
                End If
            Else
                lblStatus = "Success!!!!!"
            End If
        End If
    End If


显示编译错误,缺少数组,请大家帮忙看下是什么原因啊,谢谢。

如果不加FOT循环是可以正常执行的,谢谢。
3 回复
#2
yklstudent2013-08-10 17:30
i是byte型变量 你循环值已经大于byte最大值 所以要报错的
#3
lowxiong2013-08-10 22:35
stRegtem 根本就不是一个数组,只是一个自定义变量,虽然自定义变量包含数组,但stRegtem 本身只是一个单一变量。
#4
风吹过b2013-08-11 11:39
3楼说的对,你  stRegtem 的定义是:
Dim stRegtem As SFEP_USER_FPDATA
这里定义的是一个单一变量。虽然它指向一个自定义类型,而这个自定义类型包含一个 数组 。

            For i = LBound(stRegTem) To UBound(stRegTem)    ‘出现错误的地方

你需要访问 这个变量里的数组,就需要使用 . 进行引用。stRegtem.rbData
这个数组的大小,是一个常量规定的,那这段代码就可以直接用 常量来表示,不建议再用 函数去取最大下标。
            for i=0 to SFEP_UFPDATA_SIZE-1
最小下标,你在常量规定时,就以规定了下标是从 0 开始的,所以也可以不用去用函数去最小下标。
1