|
8#
楼主 |
发表于 2004-10-16 05:54:00
|
只看该作者
可惜MODULE对象中没有提供这两个方法由于前次不小心全部把注释删除了,前几天全部重新补上,好惨呀!所以在删除工程中所有代码时,我特加入了两条提示信息,以防再次误删!编写目的:其实大家在平时没有必要删除注释,只我因为太喜欢注释,一般一半代码中都有一半的注释,因为前次我帮做经销商的老弟写了半年多的数据库完成了,发现库文件比较大,前台文件经过ACCESS自身压缩后就有4M多,压缩后也有1M多,只因为我老弟还用老猫上网,速度太慢,所以才萌生将注释全部删除,减少体积。其实,删除所有注释后,数据大小也没变多少,目的也没有达到多少!(因为文本文件经过压缩后本身就非常非常小的)这里重新贴出注释好的代码,只供大家作学习参考(因为注释太重要了,平时最好不用这个)'--------------------------------------------------
'Purpose: 删除当前工程中所有模块中的注释
'Information:
' 修改: 王林 2004/10/12 说明:
Private Sub DelAllModulesCodeComent()
Dim Reval As Integer, i As Integer
Reval = MsgBox("在删除当前工程中所有注释前,请一定先备份好你的数据库,否则执行删除注释后,是不可恢复的!" & vbNewLine & _
"您确认要删除所有注释吗?", vbInformation + vbOKCancel + vbDefaultButton2, C_MessageTitle)
If Reval = vbOK Then
Reval = MsgBox("再次提醒:执行删除注释后,是不可恢复的!请确认已经备份好你的数据库!" & vbNewLine & _
"您继续执行删除所有的注释吗?", vbInformation + vbOKCancel + vbDefaultButton2, C_MessageTitle)
If Reval = vbOK Then
For i = 0 To Application.Modules.Count - 1
DelComment Application.Modules(i).Name
Next
End If
End If
End Sub'----------------------------------------------------------------------------------------------------
'Function: DelCodeComment --中文名 删除代码注释
'Purpose: 将指定模块中的代码注释全部删除掉
'Input: 输入参数
' [in] ModuleName -- 标准模块或类模块的名称
'Output: None
'Content: None
'Information:
' 编写: 王林 2004/10/07 说明:
' 修改: 王林 2004/10/10 说明:补上之前被删除的注册
'----------------------------------------------------------------------------------------------------
Public Function DelCodeComment(ModuleName As String)
Dim blnS1 As Integer, intS2 As Boolean '[intS2]一行代码中["]字符的数量
Dim i As Integer, j As Integer
Dim Reval As String, strLine As String
For j = Modules(ModuleName).CountOfLines To 1 Step -1
blnS1 = 0: intS2 = 0 '新行中复位值
strLine = Modules(ModuleName).Lines(j, 1)
If IsEmptyString(strLine) Or Left(LTrim(strLine), 1) = "'" Then '当前行如为[']开头或者全为空字符串,则直接删除行
Modules(ModuleName).DeleteLines j, 1
Else
For i = 1 To Len(strLine)
Reval = Mid(strLine, i, 1)
If Reval = """" Then '当出现["]字符时,表示当前行之前的[']不为注释符
intS2 = intS2 + 1
blnS1 = False
ElseIf Reval = "'" Then '当出现[']字符时,表示为代码注释的开始
blnS1 = True
'当[intS2]为双数时,[blnS1]以为True 表示是注释的开始;否则不是注释的开始
If ((intS2 / 2) - (intS2 \ 2) = 0) Or intS2 = 0 Then
Do Until i = Len(strLine) + 1 '用空字符串填充,注释行后的字符串
Mid(strLine, i) = "1 "
i = i + 1
Loop '用不注释新行替换,替换含有注释的当前行
Modules(ModuleName).ReplaceLine j, strLine
Exit For
End If
End If
Next
End If
Next j
End Function'--------------------------------------------------
'Function: IsEmptyString --中文名
'Purpose: 检查字符串值是否全部都是空字符串
'Input: 输入参数
' [in] CharacterString -- 要检查的字符串值
'Output: IsEmptyString |
|