Это похоже на работу с любыми примерами, которые я пробовал Единственное правило, которое он использует, - игнорировать апострофы внутри строковых литералов , и он не учитывает использование слова 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
Смотрите также вопрос [синтаксис языка VB6 определен онлайн] (http://stackoverflow.com/questions/1129149/visual-basic-6-0-language-syntax) – MarkJ