欢迎您来到 数字平台。 您尚未登录。[登录] [注册新用户]
当前位置: 论坛首页 / 栏目 产品与服务 / 文章 663

点击:1300

[顶层访客留言] [回复顶层(需要先登录)] [表状] [详细]
[回复留言] [回复(需要先登录)] [引用(需要先登录)]普通文章跟帖
文章id: 663
老的代码实现不了老规则加拼音

作者: xietao


在我写这篇文字的时候,或者说在稍早一点对dp2circulation加拼音脚本相关功能进行改造的时候,我发现一个问题:

老的拼音功能相关代码,就是这系列文章一上来要求您删除的那些老代码,实现不了老的加拼音子字段规则。就是指200$a内汉字创建拼音子字段$A,$f内汉字创建拼音子字段$F,...,那个老规则。

问题出在那个获取拼音配置信息的函数GetPinyinCfgLine()和配套的构思上面。当匹配200字段的时候,总是取出200字段的第一个子字段$a的信息,无法取出同一字段的其他子字段的信息。

假如我们这样配置:

string[] cfgFields = new string [] {

"200(a-A)",

"200(f-F)",

...

}

那么,如果我们真的验证一下,会发现第二行配置"200(f-F)"永远不可能被取出来。

这就是老代码的缺点了。幸好,新的取拼音规则,为每个字段只取一个子字段的拼音,掩盖了这个缺点。

但是要编写删除老规则下拼音子字段的功能的时候,这个问题就会暴露出来。或者,如果您偏偏要写一个按照老规则加拼音子字段的功能,也会暴露出这个问题。

~~~

好了说到这里,假如您要写一个老规则的加拼音功能,代码什么样子呢?

首先需要在Main()函数里面适当位置加一个功能入口:

            // 老规则加拼音
            actions.NewItem("老规则加拼音", "按照老规则来加拼音", "OldAddPinyin", false);

然后在MyHost类中的适当位置加入一个OldAddPinyin()函数,代码如下:

 void OldAddPinyin()
 {
  AddPinyin(this.OldPinyinCfgXml);
 }

这里假定您已经按照前面的文字加入过OldPinyinCfgXml的定义。

~~~

上面这个“优点”,我们拿着放大镜来看,是不是可以算是给“神奇”加点分呢?



发表时间: 2011-08-11 16:27:13
最后修改时间: 2011-08-11 16:28:14



  • 普通文章 神奇的脚本 (一) xietao 2011-08-11 15:34:50[点击:39898]
  • 普通文章 运行条件 xietao 2011-08-11 15:40:24 (ID:660) [点击:1180]
  • 普通文章 新的加拼音功能 xietao 2011-08-11 15:50:42 (ID:661) [点击:1205]
  • 普通文章 删除全部拼音子字段的功能和代码 xietao 2011-08-11 16:14:26 (ID:662) [点击:1303]
  • 普通文章 老的代码实现不了老规则加拼音 xietao 2011-08-11 16:27:13 (ID:663) [点击:1300]
  • 普通文章 选择多音字的缓存 xietao 2011-08-11 16:44:19 (ID:664) [点击:1139]
  • 普通文章 批加拼音! xietao 2011-08-11 16:55:24 (ID:665) [点击:1258]
  • 普通文章 批删除拼音 xietao 2011-08-11 17:01:54 (ID:666) [点击:1315]
  •  

    在线用户
    (无) 
    当前栏目在线用户数 0, 总在线用户数 1