以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- [求助]清除文本空行、断行 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=128901) |
-- 作者:天一生水 -- 发布时间:2018/12/17 22:18:00 -- [求助]清除文本空行、断行 老师好! 请教文本整理的问题: 具体如下: 读取word后,查找段落的最后一个字符(不包括段落标记)不是 。:……?) 的, 则选中该字符及紧接该字符后面的所有回车符(段落标记)。 并将其后面的所在段落标记删除。 如图,清除空行和断行后,应该只有两段: 请老师帮助完善清除断行、空行的代码: Dim app As New MSWord.Application try Dim dlg As New OpenFileDialog \'定义一个新的OpenFileDialog dlg.Filter= "Word文件|*.doc" \'设置筛选器 If dlg.ShowDialog = DialogResult.Ok Then \'如果用户单击了确定按钮 Dim doc = app.Documents.Open(dlg.FileName) Dim count = Doc.Characters.Count Dim rng As MSWord.Range = Doc.Range(Start:=0, End:=count) \'msgbox(rng.Text) Dim str As String = rng.text \'Dim ary() = str.replace(chr(10), "").split(new Char() {chr(13),chr(11)}) \'清除段落空行--此代码无效 \'msgbox(str) e.Form.Controls("TextBox1").text = str.replace(chr(13),vbcrlf) \'读取word后,换行符chr(10)丢失 ...... app.Quit End If catch ex As exception msgbox(ex.message) app.Quit End try |
-- 作者:有点蓝 -- 发布时间:2018/12/17 23:02:00 -- \'\'\' Dim app As New MSWord.Application try Dim doc = app.Documents.Open("D:\\问题\\测试文本整理\\测试.doc") Dim str As String Dim count = Doc.Characters.Count Dim rng As MSWord.Range = Doc.Range(Start:=0, End:=count) str = rng.text str = str.replace("。" & chr(13),"。" & vbcrlf) str = str.replace(chr(13),"") Output.Show(str ) app.Quit catch ex As exception msgbox(ex.message) app.Quit End try
|
-- 作者:天一生水 -- 发布时间:2018/12/18 13:51:00 -- 老师好! 我测试结果成一段了。原因是: str = str.replace("。" & chr(13),"。" & vbcrlf)
str = str.replace(chr(13),"")
运行这两句代码以后,硬回车chr(13)+chr(10)最后变成chr(10)了,也没有分成段落。 另外,与“。”情况相同的“......”、“:”,怎样在代码中一并考虑呢?
|
-- 作者:有点甜 -- 发布时间:2018/12/18 15:09:00 -- \'\'\' str = str.replace("。" & chr(13), "。" & chr(11)) |