以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 如何自动纠正文本错误? (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=126754) |
||||
-- 作者:旭日生 -- 发布时间:2018/10/28 12:14:00 -- 如何自动纠正文本错误? 如何根据纠错表自动纠正原文本中的拼写或录入错误呢?找了半天,没看到有人提出和解决这个问题。反复试了半天代码,还是写不对。请版主大神帮忙,看看如何通过窗口纠错按钮实现这个功能?
|
||||
-- 作者:y2287958 -- 发布时间:2018/10/28 14:44:00 -- 上个商业版看看 |
||||
-- 作者:旭日生 -- 发布时间:2018/10/28 19:54:00 -- 其实,类似WPS或OFFICE的文本自动纠错功能,通过纠错表中的正确文本替换掉原文本中因各种原因(如拼写错误、不规范称呼等)造成的错误文本。如用“江苏省人民政府”替换原文本中的习惯性称呼“江苏省政府”。 |
||||
-- 作者:y2287958 -- 发布时间:2018/10/28 22:00:00 -- Dim dic As New Dictionary(Of String, String) For Each dr As DataRow In DataTables("文件纠错表").DataRows If dr.Isnull("问题文本") = False dic.add(dr("问题文本"),dr("纠正文本")) End If Next For Each dr As DataRow In DataTables("原文本表").DataRows If dr.Isnull("原文本") = False dr("原文本") = dic(dr("原文本")) End If Next
|
||||
-- 作者:旭日生 -- 发布时间:2018/10/29 0:34:00 -- 谢谢y2287958给我全新的思路! 给出的代码似乎能解决问题,但会提示“给定关键字不在字典中”。研究了一下字典功能,但暂时还是没弄明白。
|
||||
-- 作者:旭日生 -- 发布时间:2018/10/29 6:51:00 -- 又研究了一下,弄明白了。微动了一个地方代码,原来FoxTable的字典功能可以这样用。谢谢y2287958! Dim dic As New Dictionary(Of String, String) For Each dr As DataRow In DataTables("文件纠错表").DataRows If dr.Isnull("问题文本") = False dic.add(dr("问题文本"),dr("纠正文本")) End If Next For Each dr As DataRow In DataTables("原文本表").DataRows If dic.ContainsKey(dr("原文本")) = True Then dr("原文本") = dic(dr("原文本")) End If Next |
||||
-- 作者:旭日生 -- 发布时间:2018/10/29 23:40:00 -- 奇怪,早晨用的好好的,晚上就提示下列信息,不能用了。请版主帮看一下什么倒霉情况? .NET Framework 版本:2.0.50727.8793 Foxtable 版本:2018.10.9.1 错误所在事件:表,原文本表,DataColChanged 详细错误信息: 调用的目标发生了异常。 已添加了具有相同键的项。 |
||||
-- 作者:旭日生 -- 发布时间:2018/10/29 23:58:00 -- 明白了。“文件纠错表”中键值必须是唯一的,否则,就提示上面的错误。 |