网页资讯视频图片知道文库贴吧地图采购
进入贴吧全吧搜索

 
 
 
日一二三四五六
       
       
       
       
       
       

签到排名:今日本吧第个签到,

本吧因你更精彩,明天继续来努力!

本吧签到人数:0

一键签到
成为超级会员,使用一键签到
一键签到
本月漏签0次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行补签。
连续签到:天  累计签到:天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
09月03日漏签0天
vb吧 关注:156,084贴子:1,166,237
  • 看贴

  • 图片

  • 吧主推荐

  • 游戏

  • 7回复贴,共1页
<<返回vb吧
>0< 加载中...

怎么实现查找重复章节功能

  • 只看楼主
  • 收藏

  • 回复
  • bluewaterx
  • 函数调用
    6
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

不知怎么实现重复章节功能:
有时txt小说中重复的章节由于广告问题等,不是所有行完全一致,有的只是部分行重复,有的小说作者也写些重复的内容,怎么分清
还不能直接替换,容易替换出错,得列出重复章节,校正时人工区别...


  • 0yufan0
  • 小吧主
    12
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
学习下正则表达式


2025-09-03 01:39:11
广告
不感兴趣
开通SVIP免广告
  • damyzl
  • 简易程序
    9
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
网络小说来源复杂,软件只能做些辅助工作,比如尝试识别章节,最终还是要人工确认的


  • bluewaterx
  • 函数调用
    6
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

一个8.79M的小说查找一次重复章节用时149秒..
Private Sub cmdFindLine_Click()
On Error GoTo err
If Dir(cdTxt.FileName) = "" Or cdTxt.FileName = "" Then Exit Sub
Dim i&, j&, k&, fcf%, xTmp$, yTmp$, zTmp$
lstOver.Clear
zTmp = Time
For i = 1 To UBound(readBack) Step 5 '以每次连取三行的方式全局对比
If i + 5 > UBound(readBack) Then Exit For '判断是否到结尾
If readBack(i) = "" Then GoTo Fj
xTmp = readBack(i) + vbCrLf + readBack(i + 1) + vbCrLf + readBack(i + 2)
DoEvents
txtShow = "进度:" & Str(i) & "/" & Str(UBound(readBack)) + vbTab + "用时" + Str(DateDiff("s", zTmp, Time)) + " 秒."
For j = i + 5 To UBound(readBack)
If j + 5 > UBound(readBack) Then Exit For '判断是否到结尾
yTmp = readBack(j) + vbCrLf + readBack(j + 1) + vbCrLf + readBack(j + 2)
If xTmp = yTmp And i <> j Then
fcf = 0
For k = 0 To lstOver.ListCount - 1
If Str(i) + "||" + readBack(i) = lstOver.List(k) Then fcf = 1
Next
If fcf = 0 Then
lstOver.AddItem Str(i) + "-" + readBack(i)
lstOver.AddItem Str(j) + "-" + readBack(j)
End If
End If
Next
Fj:
Next
Call ShowChar("查找完成!", labMoveChar, lblVer)
Exit Sub
err:
MsgBox err.Description & cmdFindLine.Caption
err.Clear
End Sub
用的2层for,5行5行校正,还有别的方法吗?


  • oshi001
  • 钩子编程
    15
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
感觉就是取数据比对。


  • bluewaterx
  • 函数调用
    6
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼



  • damyzl
  • 简易程序
    9
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
文本逐行比较?效率太低了,最好导入数据库再进行查找,写个小程序导入应该不难,就是导入要费些时间。导入前做好章节划分,按一行一记录的形式,同时保存章节号、行号。
用数据库查找的逻辑:
以章节为单位查找,取章节(章节号Cn)内的行(行号Ln),查找其他章节的行(章节号>Cn)。这里可能就是个难点,不同的来源会添加一些字符,比如网站名字,或者编辑内容(哪怕是一个标点也会导致无法找到),用模糊查找会解决一些问题。
如果有查找到(行号Lm),继续比较后面的行,Ln+1和Lm+1,Ln+2和Lm+2...制定一个阀值比如3行相同则判断章节(可能)重复,后面需要人工判定。
如果章节划分比较麻烦也可以直接导入,取消后面的阀值,将查找到的行全部显示出来。
总的来说,除非是一模一样的重复章节(作者手抖Ctrl+V了两次)或者你事先可以确定的模式,否则软件起的作用其实不大。当然如果重复的比较多,用软件查找至少比人工查找要好。


  • 果壳文化
  • 啥也不懂
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
解决了吗?楼主,给我一份


登录百度账号

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!
  • 贴吧页面意见反馈
  • 违规贴吧举报反馈通道
  • 贴吧违规信息处理公示
  • 7回复贴,共1页
<<返回vb吧
分享到:
©2025 Baidu贴吧协议|隐私政策|吧主制度|意见反馈|网络谣言警示