Foxtable(狐表)用户栏目专家坐堂 → [求助]清除文本空行、断行


  共有1817人关注过本帖树形打印复制链接

主题:[求助]清除文本空行、断行

帅哥哟,离线,有人找我吗?
天一生水
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1137 积分:11218 威望:0 精华:0 注册:2017/9/26 16:30:00
[求助]清除文本空行、断行  发帖心情 Post By: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



 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:105495 积分:536466 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By: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

 回到顶部
帅哥哟,离线,有人找我吗?
天一生水
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1137 积分:11218 威望:0 精华:0 注册:2017/9/26 16:30:00
  发帖心情 Post By:2018/12/18 13:51:00 [只看该作者]

老师好!

我测试结果成一段了。原因是:

    str  = str.replace("。" & chr(13),"。" & vbcrlf)
    str  = str.replace(chr(13),"")

运行这两句代码以后,硬回车chr(13)+chr(10)最后变成chr(10)了,也没有分成段落。

另外,与“。”情况相同的“......”、“:”,怎样在代码中一并考虑呢?

 


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By: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


 回到顶部