vb6 使用什么规则来查找标记一行注释掉部分开头的撇号?
我对自己定义此类规则的能力没有信心,因为:
- 字符串文字中的撇号
- 字符串操作中嵌套双引号内的撇号
- 注释中可能出现双引号的事实
- 一条线可以连续多条线的事实
- 冒号分隔单行
- 我不知道的其他可能的规则
vb6 使用什么规则来查找标记一行注释掉部分开头的撇号?
我对自己定义此类规则的能力没有信心,因为:
字符串文字中的撇号被忽略。评论中的撇号也被忽略(因为它们已经在评论中)。您不能在多行语句中放置撇号,除非它位于语句的最后一行——在这种情况下,它只遵循正常规则。
你为什么这么担心?
这似乎适用于我尝试过的任何示例它使用的唯一规则是忽略字符串文字中的撇号,并且它不考虑使用单词 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