m在工作时做一个工具来检查编码标准意味着即时通知运行中的standered以检查该im是否创建了一个XML文件用于存储和检查整个项目中的XML文件。 我有其他功能在开始功能之前给予评论。用于c#和VB.NET的代码分析器
代码在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
但当读音字implemnting在C#.net它不是做工精细,单读音混淆,检查C#功能编码standerd。
这里是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
任何一个请帮我出这一点。
“它不能正常工作”不是一个非常明确的问题描述。什么不起作用?你会得到例外(如果是这样,什么和在哪里)? – 2011-02-28 09:15:20
您发布的代码都不在C#中。这里有什么问题? – 2011-02-28 09:20:01
请将答案标为正确答案,即对您有帮助的答案。这将有助于其他谁会有相同的问题。谢谢 – 2011-02-28 09:29:35