【发布时间】:2011-02-28 09:08:35
【问题描述】:
m 制作一个工具来在运行时检查编码标准意味着我在运行中提供标准以检查我正在为标准创建一个 XML 文件,并从该 XML 文件检查整个项目。 我还有其他功能可以在启动该功能之前发表评论。
代码在 VB 中工作正常以供注释
While oRead.Peek <> -1
strLineIn = oRead.ReadLine().Trim
intLineNo = intLineNo + 1
Dim arr As String() = SplitWords(strLineIn)
'To update the Progress Bar
setProgressBar(intLineNo, intLinesCount)
If Not strLineIn.StartsWith("'") Then
If (strLineIn.Contains("Sub") Or strLineIn.Contains("Function")) _
And Not (strLineIn.Contains("End Sub") Or strLineIn.Contains("End Function")) _
And Not (strLineIn.Contains("Exit Sub") Or strLineIn.Contains("Exit Function")) _
And Not strLineIn.StartsWith("'") Then
Select Case Array.IndexOf(arr, "Sub")
Case 0, 1, 2
createErrorLog(strLineIn, fi.Name, intLineNo, "No Commnet Line for Sub Procedure", fi, strErroLogFile)
End Select
Select Case Array.IndexOf(arr, "Function")
Case 0, 1, 2
createErrorLog(strLineIn, fi.Name, intLineNo, "No Commnet line for Function", fi, strErroLogFile)
End Select
End If
Else
'createErrorLog(processXMLComment(oRead), fi.Name, intLineNo, "No Commnet Line", fi)
strLineIn = processXMLComment(oRead, intLineNo)
End If
If Not strLineIn.Trim.StartsWith("'") Then
For intVar As Integer = 0 To DataType.Count - 1
If strLineIn.Contains(DataType(intVar).InnerText) Then
arr = SplitWords(strLineIn)
For inti As Integer = 0 To arr.Length - 1
If arr(inti) = DataType(intVar).InnerText Then
If (arr(inti - 1) = "As") Then
If strLineIn.LastIndexOf(",") = strLineIn.IndexOf(arr(inti - 2)) - 2 Then
Dim intPosition As Integer = 2
For Each c In strLineIn
If Not arr(inti - intPosition).StartsWith(VarName(intVar).InnerText) Then
createErrorLog(strLineIn, fi.Name, intLineNo, arr(inti - intPosition), fi, strErroLogFile)
End If
intPosition = intPosition + 1
If arr(inti - intPosition) = "Dim" Or arr(inti - intPosition) = "Private" Then
Exit For
End If
Next
Else
If Not arr(inti - 2).StartsWith(VarName(intVar).InnerText) Then
If Not (strLineIn.Contains("Function") And _
arr(arr.Length - 3) = arr(inti - 2)) Then
createErrorLog(strLineIn, fi.Name, intLineNo, arr(inti - 2), fi, strErroLogFile)
End If
End If
End If
End If
End If
Next
End If
Next
End If
End While
oRead.Close()
intLineNo = 0
但是当我在 c#.net 中实现时它不能正常工作,我很困惑检查 c# 函数编码标准。
这里是c#.net的代码
While oRead.Peek <> -1
strLineIn = oRead.ReadLine().Trim
intLineNo = intLineNo + 1
setProgressBar(intLineNo, intLinesCount)
If strLineIn.StartsWith("/*") Then
bCommentLine = True
ElseIf strLineIn.StartsWith("*/") Then
bCommentLine = False
End If
Dim arr As String() = Splitline(strLineIn)
' code adding
If Not strLineIn.StartsWith("//") Then
If Not strLineIn.Trim.EndsWith(";") And _
Not strLineIn.Trim.StartsWith("{") And _
Not strLineIn.Trim.StartsWith("}") And _
Not strLineIn.StartsWith("//") And _
Not strLineIn.Trim.ToString = "" And _
Not find(strLineIn.Trim) Then
createErrorLog(strLineIn, fi.Name, intLineNo, "No Commnet Line", fi, strErroLogFile)
End If
Else
'createErrorLog(processXMLComment(oRead), fi.Name, intLineNo, "No Commnet Line", fi)
strLineIn = processXMLComment(oRead, intLineNo)
End If
If Not (strLineIn.StartsWith("//") Or strLineIn.StartsWith("///")) And bCommentLine = False Then
For intVar As Integer = 0 To DataType.Count - 1
If strLineIn.Contains(DataType(intVar).InnerText) Then
arr = Splitline(strLineIn)
For inti As Integer = 0 To arr.Length - 1
If arr(inti) = DataType(intVar).InnerText Then
If strLineIn.IndexOf(c) = strLineIn.IndexOf(arr(inti + 1)) + 1 And _
strLineIn.Trim.IndexOf(";") = strLineIn.Length - 1 Then
Dim intPosition As Integer = 1
For Each c In strLineIn
If Not arr(inti + intPosition).StartsWith(VarName(intVar).InnerText) Then
createErrorLog(strLineIn, fi.Name, intLineNo, arr(inti + intPosition), fi, strErroLogFile)
End If
intPosition = intPosition + 1
If arr(inti + intPosition) = "" Then
Exit For
End If
Next
Else
If Not arr(inti + 1).StartsWith(VarName(intVar).InnerText) Then
createErrorLog(strLineIn, fi.Name, intLineNo, arr(inti + 1), fi, strErroLogFile)
End If
End If
End If
Next
End If
Next
End If
End While
oRead.Close()
intLineNo = 0
请任何人帮我解决这个问题。
【问题讨论】:
-
“它不能正常工作”不是一个非常清晰的问题描述。什么不工作?你有例外吗(如果有,是什么以及在哪里)?
-
您发布的所有代码都不是 C# 代码。这里有什么问题?
-
请将答案标记为正确答案,对您有帮助。这将帮助其他有同样问题的人。谢谢
标签: vb.net