2013-03-19 151 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 

爲你的函數的最後一行。