以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- [求助]文档清理 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=169656) |
||||
-- 作者:天一生水 -- 发布时间:2021/6/24 16:32:00 -- [求助]文档清理 蓝老师好! 我想清理系统导出的代码文档,达到软著登记的代码要求,清理后最终文档为纯代码,即不包括空行、纯注释行、代码后面的注释、标注行(如文档中 事件名称、控件名称等红、蓝色字符的段落等)。 下面的代码可以清理空行和以单引号开头的注释行,其他的不会写,麻烦蓝老师给写一下代码。 谢谢!
Dim dlg As new OpenFileDialog For Each k As object In doc.Paragraphs Next doc.save
|
||||
-- 作者:有点蓝 -- 发布时间:2021/6/24 16:46:00 -- 我也搞不定,手工处理一下吧 |
||||
-- 作者:天一生水 -- 发布时间:2021/6/24 20:31:00 -- 手工可以处理带颜色的字符: |
||||
-- 作者:天一生水 -- 发布时间:2021/6/24 20:31:00 -- 蓝老师,我增加了一段代码,是行的前部分为代吗,后半部分为以单引号开头的注释,但是删除时没有删到右边最后字符,麻烦老师给看看怎样修改? Dim dlg As new OpenFileDialog dlg.Filter = "word|*.doc;*.docx" If dlg.ShowDialog = DialogResult.OK Then Dim app As New MSWord.Application try Dim doc = app.Documents.Open(dlg.FileName) For Each k As object In doc.Paragraphs If Len(Trim(k.Range.text)) = 1 Then k.Range.Delete \'删除空行 If Trim(k.Range.text).StartsWith(chr(39)) Then k.Range.Delete \'删除段落的开头字符是单引号 Dim rgx As New RegularExpressions.Regex("[\\s][\\p{P}][\\u4e00-\\u9fa5]") \'空格+单个标点(单引号)+中文字符 k.Range.text =rgx.Replace(k.Range.text,"")) Next doc.save app.quit catch ex As exception msgbox(ex.message) app.quit End try End If
|
||||
-- 作者:有点蓝 -- 发布时间:2021/6/24 20:45:00 -- 试试Dim rgx As New RegularExpressions.Regex("[\\s][\\p{P}][\\u4e00-\\u9fa5]$") |
||||
-- 作者:天一生水 -- 发布时间:2021/6/24 20:48:00 -- 这样行 Dim tx As String = "System.Diagnostics.Process.GetCurrentProcess().Kill \'退出进程,你好" Dim rgx As New RegularExpressions.Regex("[\\s][\\p{P}][\\u4e00-\\u9fa5].*") \'空格+单个标点+中文字符 Output.show(rgx.Replace(tx,"")) [此贴子已经被作者于2021/6/24 21:01:50编辑过]
|
||||
-- 作者:天一生水 -- 发布时间:2021/6/25 8:12:00 -- 蓝老师好! 我试了一下这样写就可以:\'[\\u4e00-\\u9fa5].* 但是这个表达式怎样写到这里面:Dim rgx As New RegularExpressions.Regex(" ")
![]() ![]() |
||||
-- 作者:有点蓝 -- 发布时间:2021/6/25 8:41:00 -- Dim rgx As New RegularExpressions.Regex("\'[\\u4e00-\\u9fa5].*") |
||||
-- 作者:天一生水 -- 发布时间:2021/6/25 15:10:00 -- 蓝老师,加黑代码还有一点小问题:删除注释时会把换行符删除,请看图,怎样不删掉换行符? 代码如下: Dim rgx As New RegularExpressions.Regex("\'[\\u4e00-\\u9fa5].*")
![]() ![]() [此贴子已经被作者于2021/6/25 15:26:50编辑过]
|
||||
-- 作者:有点蓝 -- 发布时间:2021/6/25 15:32:00 -- 试试 Dim rgx As New RegularExpressions.Regex("(?s)\'[\\u4e00-\\u9fa5].*")
|