以文本方式查看主题

-  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后,查找段落的最后一个字符(不包括段落标记)不是     。:……?)    的,
则选中该字符及紧接该字符后面的所有回车符(段落标记)。
并将其后面的所在段落标记删除。

如图,清除空行和断行后,应该只有两段:

图片点击可在新窗口打开查看此主题相关图片如下:image 1.png
图片点击可在新窗口打开查看

请老师帮助完善清除断行、空行的代码:
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
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:测试文本整理.rar



--  作者:有点蓝
--  发布时间: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
--  

\'\'\'
Dim app As New MSWord.Application
try
    Dim dlg As New OpenFileDialog \'定义一个新的OpenFileDialog
    dlg.Filter= "Word文件|*.doc" \'设置筛选器
    If dlg.ShowDialog = DialogResult.Ok Then \'如果用户单击了确定按钮
        \'MessageBox.Show("你选择的是:" & dlg.FileName,"提示") \'提示用户选择的文件
       
        Dim doc = app.Documents.Open(dlg.FileName)
        Dim count = Doc.Characters.Count
        Dim rng As MSWord.Range = Doc.Range(Start:=0, End:=count)
       
        Dim str As String = rng.text

        str  = str.replace("。" & chr(13), "。" & chr(11))
        str  = str.replace(chr(13), "")
        str = str.Replace(chr(11), vbcrlf)
        e.Form.Controls("TextBox1").text = str      \'读取word后,换行符chr(10)丢失
       
        app.Quit
    End If
catch ex As exception
    msgbox(ex.message)
    app.Quit
End try