0

レガシ VB 6.0 アプリケーションに取り組んでいる VB noob です。

以下の関数内で 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

しかし、GetATRNames (下記) から GetNumOfLines を呼び出すと、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 内でチェックしたときとは異なる値を与えている理由についてのアイデアはありますか?

4

3 に答える 3

6

値を返していません。置く:

GetNumOfLines = lineno

最初の関数の終わりに。

于 2013-03-19T16:55:48.173 に答える
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
于 2013-03-19T16:56:11.207 に答える
3

GetNumOfLines関数から値を返す必要があります

行を追加します

GetNumOfLines = lineno

関数の最後の行として。

于 2013-03-19T16:57:10.927 に答える