1

我有一个创建和打开文本文件的 vbscript 函数。我想将文件句柄从函数返回到代码的主体。不幸的是,我得到一个对象不支持此属性或方法错误。

最终,我将设置代码,在其中我将拥有一个调试脚本,该脚本将具有打开、写入、读取和关闭文件的功能。然后,我可以将此脚本导入另一个 vbscript 文件并将其用于调试目的。但是,首先,我需要让下面的代码工作。

先感谢您。

这是代码:

Function OpenFileWrite(sDirectory, sFile)
    Dim objFSO 'As FileSystemObject
    Dim objTextFile 'As Object

    Const ForReading = 1
    Const ForWriting = 2
    Const ForAppending = 8

    Set objFSO = CreateObject("Scripting.FileSystemObject")

    ' Check that the strDirectory folder exists
    If objFSO.FolderExists(sDirectory) Then
            Set objFolder = objFSO.GetFolder(sDirectory)
    Else
            Set objFolder = objFSO.CreateFolder(sDirectory)
            WScript.Echo "Just created " & sDirectory
    End If

    If objFSO.FileExists(sDirectory & "\" & sFile) Then
            Set objFile = objFSO.GetFile(sDirectory & "\" & sFile)
    Else
            Set objFile = objFSO.CreateTextFile(sDirectory & "\" & sFile)
            Wscript.Echo "Just created " & sDirectory & "\" & sFile
    End If

    Set objTextFile = objFSO.OpenTextFile(sDirectory & "\" & sFile, ForWriting, True)

    OpenFileWrite = objTextFile

End Function

sDirectory = "\"
sFile = "debug.txt"

Set ObjFile = OpenFileWrite(sDirectory, sFile)
4

1 回答 1

2

您需要Set对象分配给变量函数的返回值:

OpenFileWrite = objTextFile
==>
Set OpenFileWrite = objTextFile

(在Set OpenFileWrite = objTextFile遵守Set规则“使用 Set 分配对象”;OpenFileWrite =“实现”规则“分配给函数名称以指定返回值”。)

于 2013-04-11T18:11:23.430 回答