Vb6 查找行的已注释部分
vb6使用什么规则来查找标记注释开始的撇号 一行(多行)之外的部分 我对自己定义此类规则的能力没有信心,因为:Vb6 查找行的已注释部分,vb6,Vb6,vb6使用什么规则来查找标记注释开始的撇号 一行(多行)之外的部分 我对自己定义此类规则的能力没有信心,因为: 字符串文字中的撇号 字符串操作中嵌套双引号内的撇号 注释中可能会出现双引号 一行可以在多行上连续的事实 冒号打断了一行 我不知道的可能的其他规则 忽略字符串文字中的撇号。注释中的撇号也被忽略(因为它们已经在注释中)。在多行语句中不能使用撇号,除非它位于语句的最后一行——在这种情况下,它只遵循正常规则 你为什么这么担心?字符串文字中的撇号被忽略。注释中的撇号也被忽略(因为它们已经在注释
- 字符串文字中的撇号
- 字符串操作中嵌套双引号内的撇号
- 注释中可能会出现双引号
- 一行可以在多行上连续的事实
- 冒号打断了一行
- 我不知道的可能的其他规则
- 忽略字符串文字中的撇号。注释中的撇号也被忽略(因为它们已经在注释中)。在多行语句中不能使用撇号,除非它位于语句的最后一行——在这种情况下,它只遵循正常规则
你为什么这么担心?字符串文字中的撇号被忽略。注释中的撇号也被忽略(因为它们已经在注释中)。在多行语句中不能使用撇号,除非它位于语句的最后一行——在这种情况下,它只遵循正常规则
你为什么这么担心呢?如果你真的想知道,那就在MSDN上用BNF语法在线。VBA与VB6有99%的等效性-当然,有关标识注释的规则必须相同
如果你想消除死掉的代码,那就去做吧!它是免费的。使用代码审查工具。“MZ工具可以在项目组、项目或文件级别(通过上下文菜单)检查源代码,检测未使用的变量、常量、参数、私有过程等。”要消除未使用的子项和函数,请使用列出所有调用者的MZ工具功能
编辑评论中讨论了如何删除不必要地声明为
公共
的项目:MZ工具对此没有帮助。如果您真的想知道,可以使用BNF语法在MSDN上联机。VBA与VB6有99%的等效性-当然,有关标识注释的规则必须相同
如果你想消除死掉的代码,那就去做吧!它是免费的。使用代码审查工具。“MZ工具可以在项目组、项目或文件级别(通过上下文菜单)检查源代码,检测未使用的变量、常量、参数、私有过程等。”要消除未使用的子项和函数,请使用列出所有调用者的MZ工具功能
编辑评论中讨论了如何删除不必要地声明为
公共的项目
:MZ工具对此没有帮助。这似乎适用于我尝试过的任何示例
它使用的唯一规则是忽略字符串文本中的撇号
而且它也不能解释用rem这个词来开始评论。
遗憾的是,直到昨天我才意识到“”(4个双引号)是一个包含单双引号的字符串文字
Public Function CommentStripOut(ByVal strLine As String) As String
Dim InLiteral As Boolean
Dim strReturn As String
Dim LenLine As Long
Dim counter As Long
Dim s1 As String
Dim s2 As String
strReturn = strLine
LenLine = Len(strLine)
InLiteral = False
For counter = 1 To LenLine
s1 = Mid$(strLine, counter, 1)
If counter < LenLine Then
s2 = Mid$(strLine, counter + 1, 1)
Else
s2 = ""
End If
If s1 = """" Then
If Not InLiteral Then
InLiteral = True
Else
If s2 = """" Then
counter = counter + 1
'skip on by 1 because
'want to treat escaped
'double quote as a single
'character
Else
InLiteral = False
End If
End If
Else
If Not InLiteral Then
If s1 = "'" Then
strReturn = Left$(strLine, counter - 1)
Exit For
End If
End If
End If
Next counter
CommentStripOut = strReturn
End Function
公共函数CommentStripOut(ByVal strLine作为字符串)作为字符串
Dim InLiteral作为布尔值
变暗strReturn为字符串
暗透镜和长透镜一样
昏暗的柜台一样长
将s1变暗为字符串
将s2设置为字符串
strReturn=strLine
LenLine=Len(strLine)
InLiteral=False
对于计数器=1到透镜线
s1=中间美元(斯特林,计数器,1)
如果计数器
这似乎适用于我尝试过的任何示例
它使用的唯一规则是忽略字符串文本中的撇号
而且它也不能解释用rem这个词来开始评论。
遗憾的是,直到昨天我才意识到“”(4个双引号)是一个包含单双引号的字符串文字
Public Function CommentStripOut(ByVal strLine As String) As String
Dim InLiteral As Boolean
Dim strReturn As String
Dim LenLine As Long
Dim counter As Long
Dim s1 As String
Dim s2 As String
strReturn = strLine
LenLine = Len(strLine)
InLiteral = False
For counter = 1 To LenLine
s1 = Mid$(strLine, counter, 1)
If counter < LenLine Then
s2 = Mid$(strLine, counter + 1, 1)
Else
s2 = ""
End If
If s1 = """" Then
If Not InLiteral Then
InLiteral = True
Else
If s2 = """" Then
counter = counter + 1
'skip on by 1 because
'want to treat escaped
'double quote as a single
'character
Else
InLiteral = False
End If
End If
Else
If Not InLiteral Then
If s1 = "'" Then
strReturn = Left$(strLine, counter - 1)
Exit For
End If
End If
End If
Next counter
CommentStripOut = strReturn
End Function
公共函数CommentStripOut(ByVal strLine作为字符串)作为字符串
Dim InLiteral作为布尔值
变暗strReturn为字符串
暗透镜和长透镜一样
昏暗的柜台一样长
将s1变暗为字符串
将s2设置为字符串
strReturn=strLine
LenLine=Len(strLine)
InLiteral=False
对于计数器=1到透镜线
s1=中间美元(斯特林,计数器,1)
如果计数器
另请参见问题请参见问题您可以在不是多行语句最后一行的行上加一个撇号,它将注释掉后面的行。我想知道,因为我试图消除死代码和未使用的subs函数,变量,减少其他变量的作用域,并确定我希望忽略已注释的调用等out@kjackOMG只需获得——这是免费的——并使用代码审查工具。“我也是