原创Autoit脚本开源软件分享(更新到v1.2)

5次阅读
没有评论

应坛友 1314233 发布的 txt汉字章节批量替换为阿拉伯数字章节
为实现类似下面的小说章节
第一章 我爱你
正文
第二章 他爱你
正文
第三章 你爱他
正文
...
...
第两万一千八百二十六章 你爱他他不爱她他爱她
正文

把文字章节转换成阿拉伯数字章节
第1章 我爱你
正文
第2章 他爱你
正文
第3章 你爱他
正文
...
...
第21826章 你爱他他不爱她他爱她
正文

本人用小众脚本软件autoit做了一个简单的处理程序,
网友想学习其中的代码,故开源在此,给大家提供一种普通的思路。

#TextNovelChineseNumberToArabic 源码分享
#主要使用了正则替换和普通替换。
#大量替换直接枚举,没有加循环,更便于大家学习吧

$s=""
$file=FileOpenDialog("选择小说文本文件", @ScriptDir, "文本文件 (*.txt)|全部 (*.*)" )
$txt=FileRead($file)

$a=StringRegExp($txt, "第([一两二三四五六七八九十零〇百佰千仟万萬]+)章", 3)
If Not @Error Then
For $i=0 to UBound($a)-1
$s=$a[$i]
if StringLeft($s, 1)="十" Then $s= "1" & StringMid($s, 2)
$s=StringRegExpReplace($a[$i], "^十", "")
$s=StringReplace($s, "十", "")
$s=StringReplace($s, "百", "")
$s=StringReplace($s, "佰", "")
$s=StringReplace($s, "千", "")
$s=StringReplace($s, "仟", "")
$s=StringReplace($s, "万", "")
$s=StringReplace($s, "萬", "")
$s=StringReplace($s, "一", 1)
$s=StringReplace($s, "两", 2)
$s=StringReplace($s, "二", 2)
$s=StringReplace($s, "三", 3)
$s=StringReplace($s, "四", 4)
$s=StringReplace($s, "五", 5)
$s=StringReplace($s, "六", 6)
$s=StringReplace($s, "七", 7)
$s=StringReplace($s, "八", 8)
$s=StringReplace($s, "九", 9)
$s=StringReplace($s, "零", 0)
$s=StringReplace($s, "〇", 0)
ConsoleWrite($s & @LF)
$txt=StringReplace($txt, "第" & $a[$i] & "章", "第" & $s & "章")
Next
EndIf

If $s<>"" Then
$newfile=StringReplace($file, ".", "_new.",-1)
$fid=FileOpen($newfile, 2+8)
FileWrite($fid , $txt)
FileClose($fid)
Msgbox(8192+64, "提示", "文本小说处理完毕,请自行检查" & @CRLF & "后缀_new在源文件目录处",3 )
Else
Msgbox(8192+48, "提示", "文本小说未发现需要处理的中文数字", 3)
EndIf

#TextNovelChineseNumberToArabic 源码结束

完整代码与软件见 https://wwm.lanzout.com/iY0jf0gqpsfg (v1.0)

根据坛友提出的bug,只好不偷懒的用十进制逐渐累加
v1.2 直接放进压缩包内,大家可以再测试。 https://wwm.lanzout.com/iYfaR0gw74af

正文完
 0
116博客
版权声明:本篇文章由 116博客 于2024-11-29发表,共计1543字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
评论(没有评论)
验证码