Vb6 如何使用MSScript控件检查脚本是否定义了特定的类或属性?

Vb6 如何使用MSScript控件检查脚本是否定义了特定的类或属性?,vb6,msscriptcontrol,Vb6,Msscriptcontrol,我目前正在开发一个使用MSScriptControl的旧式VB6程序。它以文件名作为输入,然后获取在所述文件中定义的类的属性中定义的一些字符串 以下是当前代码: Dim oScript As New ScriptControl With oScript .Language = "VBSCRIPT" .Reset .UseSafeSubset = False .Timeout = -1 sScriptCode = "ScriptLoadedFromSome

我目前正在开发一个使用
MSScriptControl
的旧式VB6程序。它以文件名作为输入,然后获取在所述文件中定义的
类的
属性
中定义的一些字符串

以下是当前代码:

Dim oScript As New ScriptControl
With oScript
    .Language = "VBSCRIPT"
    .Reset
    .UseSafeSubset = False
    .Timeout = -1

    sScriptCode = "ScriptLoadedFromSomeFileDefinedSomewhereElse" 'This variable contains the entire length of the script file

    'This Len() should guard against Test:FileIsBlank
    If Len(sScriptCode) = 0 Then GoTo DoTheRest

    'This InStr() should guard against Test:FileDoesNotContainClassDef
    If InStr(1, sScriptCode, "Class myClassName", vbTextCompare) = 0 Then GoTo DoTheRest

    .AddCode sScriptCode
    .AddCode "Dim myClassName"
    .AddCode "Set myClassObject = New myClassName"

    'These InStr()s should guard against Test:FileDoesNotContainExpectedSubs
    If InStr(1, sScriptCode, "Property Get PropStringA", vbTextCompare) = 0 Then GoTo DoTheRest
    sPropStringA = .Eval("myClassObject.PropStringA")

    If InStr(1, sScriptCode, "Property Get PropStringB", vbTextCompare) = 0 Then GoTo DoTheRest
    sPropStringB = .Eval("myClassObject.PropStringB")

    'This should guard against everything else. That is, Test:FileContainsInvalidVBCode
    If Err Then GoTo DoTheRest
End With

DoTheRest:
'Rest of Code
以下是输入脚本文件的相关部分:

Class myClassName

Public Property Get PropStringA()
  PropStringA = _
    "StringA" 
End Property

Public Property Get PropStringB()
  PropStringB = _
    "StringB,StringC,StringD,StringE"
End Property
上述内容通过
FileSystemObject.OpenTextFile()
加载到
sScriptCode
变量中

使用
ScriptControl
的全部目的是通过实例化
Class
并使用
ScriptControl.Eval
来获取文件的类属性
PropStringA
PropStringB
中定义的字符串

这是我的问题:这(hack)是有效的,但是有没有更好、更精确的方法让我检查输入脚本是否确实包含我需要的内容,特别是
定义和
公共获取属性
?如果文件不是空的,但实际上不包含VB代码,比如文本文件,该怎么办


奖金:我应该把这个问题重新问一遍吗?

我投票决定把这个问题作为离题题来结束,因为它似乎更适合codereview.stackexchange.com。我应该在那里提出一个新问题,还是将这个问题重新问一遍?