| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1717 人关注过本帖
标题:大神求助:如何批量将若干txt或doc文档内每个段落,都解构转换成以段落内容 ...
只看楼主 加入收藏
youxianwei
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2022-3-6
结帖率:0
收藏
已结贴  问题点数:20 回复次数:8 
大神求助:如何批量将若干txt或doc文档内每个段落,都解构转换成以段落内容命名的txt?
大神求助:如何批量将若干txt或doc文档内每个段落,都解构转换成以段落内容命名的txt?【段落字符数超过255个或段落中有不可命名的特殊符号/ \ : * < | ,想办法忽略掉吧,谢谢】
搜索更多相关主题的帖子: 批量 txt 内容 转换 命名 
2022-03-06 18:44
约定的童话
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:56
帖 子:246
专家分:1442
注 册:2021-8-1
收藏
得分:5 
上传附件看下
2022-03-06 18:50
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4947
专家分:30084
注 册:2008-10-15
收藏
得分:5 
首先是取得每一个段落,
txt 好说,直接按行读就可以。
doc ,一般的做法是使用 word 对象,然后打开文件,一段一段的循环取内容。

针对每个段落处理的好办,
替换掉不能用于文件名的特殊字符即可
然后取前面 251个字符,再加上后缀名 ,保存。

最后,还是楼上的那句:上传附件看下

授人于鱼,不如授人于渔
早已停用QQ了
2022-03-06 19:49
kedian1968
Rank: 2
等 级:论坛游民
帖 子:15
专家分:15
注 册:2022-2-15
收藏
得分:5 
主要難點在 章節區分吧
一個章節 是用兩個 vbCrLf 換行?
搜尋 兩個換行 vbCrLf & vbCrLf 當斷點另存
2022-03-07 10:55
kedian1968
Rank: 2
等 级:论坛游民
帖 子:15
专家分:15
注 册:2022-2-15
收藏
得分:0 
图片附件: 游客没有浏览图片的权限,请 登录注册

程序代码:
Private 路徑 As String, 檔名 As String

Private Sub Command1_Click()
    Dim 內容 As String, 章節1 As String, 章節2 As String, LineFromFile As String
    內容 = ""
    路徑 = Text1.Text
    檔名 = Text2.Text
    章節1 = ""
    FilePath = 路徑 & 檔名
    Open FilePath For Input As #1 ' 開啟 FilePath 文字檔,使用編號 #1 檔案代
    Do Until EOF(1) ' 執行迴圈,直到編號 #1 檔案遇到結尾為止
        Line Input #1, LineFromFile ' 從編號 #1 檔案讀取一行資料
        LineFromFile = 替換字符(LineFromFile)
        章節2 = 取章節(LineFromFile)
        If 章節2 <> "" Then
            Call 寫入TXT(路徑 & 章節1 & ".txt", 章節1 & vbCrLf & 內容)
            章節1 = 章節2
            內容 = ""
        Else
            內容 = 內容 & LineFromFile & vbCrLf   ' ' 輸出一行資料
        End If
    Loop
    Close #1 ' 關閉編號 #1 檔案
End Sub

Function 替換字符(str1 As String) '/ \ : * < |
    Dim 字串 As String
    字串 = Replace(str1, "/", "") '替換字符1開始返回
    字串 = Replace(字串, "\", "")
    字串 = Replace(字串, ":", "")
    字串 = Replace(字串, "*", "")
    字串 = Replace(字串, "<", "")
    字串 = Replace(字串, "|", "")
    字串 = Replace(字串, "?", "")
    字串 = Replace(字串, ".", "")
    字串 = Replace(字串, "·", "")
    替換字符 = 字串
End Function

Function 取章節(str2 As String)
    是否章節 = 0
    結果1 = InStr(str2, "") '往後 正查字符
    結果2 = InStr(str2, "") '往後 正查字符
    If 結果1 > 0 And 結果2 > 0 Then
        章節 = Mid(str2, 結果1)
        取章節 = 章節
    End If
    'Debug.Print 結果1 & "," & 結果2 & "=" & 章節
End Function

Private Function 寫入TXT(ByVal OutputFilePath As String, Content As String) '路徑 ,內容
    Open OutputFilePath For Output As #2 ' 開啟 OutputFilePath 文字檔,使用編號 #2 檔案代碼
    Print #2, Content ' 將 Content 的內容寫入編號 #2 的檔案
    Close #2 ' 關閉編號 #2 檔案
End Function

Private Sub Text1_Change() '變更時更新參數
    If Text1.CausesValidation Then 路徑 = Text1.Text
End Sub

Private Sub Text2_Change() '變更時更新參數
    If Text2.CausesValidation Then 檔名 = Text2.Text
End Sub



[此贴子已经被作者于2022-3-7 16:33编辑过]

2022-03-07 15:24
youxianwei
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2022-3-6
收藏
得分:0 
感谢大家答复,第一次进这论坛,正在学vba编程菜鸟,还需要花时间消化理解。
2022-03-09 04:46
youxianwei
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2022-3-6
收藏
得分:0 
20220306test将许多段落内容解构成以段落内容命名的txt文件到同目录下.rar (29.68 KB)
图片附件: 游客没有浏览图片的权限,请 登录注册
2022-03-09 10:12
youxianwei
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2022-3-6
收藏
得分:0 
第一次上这个网站,都不知道怎么上传附件,谢谢各位大佬提醒
2022-03-09 10:13
yuma
Rank: 12Rank: 12Rank: 12
来 自:银河系
等 级:贵宾
威 望:37
帖 子:1934
专家分:3012
注 册:2009-12-22
收藏
得分:5 
用cmd批处理,很简单。

程序代码:
@echo off
::文件名不能以数字命名
for /f "tokens=1* delims=:" %%i in ('findstr /n .* 文本.txt') do (
        echo %%j  && echo %%j>>%%i.txt
)
pause

心生万象,万象皆程序!
本人计算机知识网:http://bbs.为防伸手党,本站已停止会员注册。
2022-03-09 19:12
快速回复:大神求助:如何批量将若干txt或doc文档内每个段落,都解构转换成以段落 ...
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.034113 second(s), 11 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved