标题: [文本处理] 新手求助批处理怎样修改小说章节? [打印本页]
作者: nobody037 时间: 2017-7-25 10:13 标题: 新手求助批处理怎样修改小说章节?
一本1000多章小说,他每一章的标题是1 xxx,2 xxx,这样掌阅之类的软件分章是乱的,不能很好的识别,怎么能改成第一章 xxx,第二章 xxx,或者第1章 xxx,第2章 xxx?
作者: happy886rr 时间: 2017-7-25 12:02
本帖最后由 happy886rr 于 2017-7-25 12:43 编辑
用法:存为bat跟test.txt放一起。
JS混编- 1>1/* :
- @echo off&cls&cscript -nologo -e:jscript "%~f0" test.txt&pause&exit
- */
-
- var fso=new ActiveXObject('Scripting.FileSystemObject'), fp=fso.OpenTextFile(WScript.Arguments(0), 1);
- while(! fp.AtEndOfStream)
- {
- WScript.echo((fp.ReadLine()).replace(/(\d+)(\s.*)/, '第$1章$2'));
- }
复制代码
.
.
Csharp- /*************************************************************************
- @ECHO OFF&CLS&TITLE MINI CSHARP COMPILER BY HAPPY
- for /f "delims=" %%a in ('dir /a-d /b /s "%systemroot%\Microsoft.NET\Framework\csc.exe"') do (
- "%%~a" /out:a.exe "%~f0" && a.exe
- pause&exit/b
- )
- )
- set/p=You needs Microsoft.NET!&exit/b
- **************************************************************************/
- using System;
- using System.IO;
- using System.Text;
- using System.Text.RegularExpressions;
-
- namespace FileIOApplication
- {
- class Program
- {
- static void Main(string[] args)
- {
- FileStream inFp = new FileStream("test.txt", FileMode.Open, FileAccess.Read);
- FileStream outFp = new FileStream("test2.txt", FileMode.Create, FileAccess.Write);
-
- byte[] inFpBinary = new byte[inFp.Length];
- inFp.Read(inFpBinary, 0, (int)inFp.Length);
- inFp.Close();
-
- string inTextString = System.Text.Encoding.UTF8.GetString(inFpBinary);
- string outTextString = Regex.Replace(inTextString, @"(\d+)(\s.*)", @"第$1章$2");
-
- byte[] outFpBinary = System.Text.Encoding.Default.GetBytes(outTextString);
- outFp.Write(outFpBinary, 0, (int)outFpBinary.Length);
- outFp.Close();
- }
- }
- }
复制代码
作者: 523066680 时间: 2017-7-25 12:32
C#DAFA 好
作者: nobody037 时间: 2017-7-25 13:01
回复 2# happy886rr
用第一段代码的话只有最后200多章的内容,而用第二段代码的话生成的文件除了“第x章”之外就全是乱码了。。。。
作者: nobody037 时间: 2017-7-25 13:07
回复 2# happy886rr
好了,我改了下文件编码就没问题了,谢谢大神啊
作者: happy886rr 时间: 2017-7-25 13:42
回复 5# nobody037
你应该对批处理有点基础才行。不能再问为啥只显示最后几章了,echo就是一直显示,直到文件结束,你加个文件输出 >out.txt就能解决。
作者: 3518228042 时间: 2017-7-25 13:56
最有效的TXT分章工具txtSplit v6,100%按照第x章分割,
连正文中出现第x章也会被分割,所以略有缺陷。
搜索:txt切割器 小说章节分割 V6.0
必须改成ANSI编码,否则其他会乱码。
TXT杀手最终标题版,能100%按照第x章xxx分割,
缺陷:正文行太长或标题行太长、特殊字符就会错误,可以备用。
easypub,正则表达式提取章节名称分割,txt直接生成小说,
如果电脑听书还是缺少相关100%有效工具,因为标题后面如果是正文需要先添加个换行,
特殊字符及一些标点需要先替换成大写的。
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |