2013-03-19 117 views
0

VB noob在这里,工作在传统的VB 6.0应用程序。vb6函数不返回值

当我检查下面的函数中LINENO的价值,我得到的预期值:

Public Function GetNumOfLines(filename As String) As Integer 
    Dim lineno as Integer 
    lineno = 0 
    Open App.Path + filename For Input As #1 

    Do While Not EOF(1) 
     lineno = lineno + 1 
     Line Input #1, linevar 
     Loop 
     Close #1 

    MsgBox "numOfLines: " & lineno 'This works 
    End Function 

但是,当我打电话GetNumOfLines从GetATRNames(下同),numOfLines是0:

Public Function GetATRNames() As String() 
    Dim filename as String 
    filename = "\atrname.dat" 
    Dim numOfLines as Integer 
    numOfLines = GetNumOfLines(filename) 

    MsgBox "numOfLines: " & numOfLines 'This does not 
     End Function 

关于为什么numOfLines = GetNumOfLines(filename)的任何想法给我一个不同的值比当我检查GetNumOfLines?

回答

6

您没有返回价值。把:

GetNumOfLines = lineno 

在第一个函数结束。

3

你只需要返回你的价值:

Public Function GetNumOfLines(filename As String) As Integer 
    Dim lineno as Integer 
    lineno = 0 
    Open App.Path + filename For Input As #1 

    Do While Not EOF(1) 
     lineno = lineno + 1 
     Line Input #1, linevar 
     Loop 
     Close #1 

    MsgBox "numOfLines: " & lineno 'This works 

    'return number of lines 
    GetNumOfLines = lineno 

    End Function 
3

您需要从GetNumOfLines功能

返回值添加行

GetNumOfLines = lineno 

为你的函数的最后一行。