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

点击:1259

[顶层访客留言] [回复顶层(需要先登录)] [表状] [详细]
[回复留言] [回复(需要先登录)] [引用(需要先登录)]普通文章跟帖
文章id: 665
批加拼音!

作者: xietao


下面,我们来点刺激的:为整个一个书目库的全部书目记录自动加拼音,怎么样?

其实,“自动”加拼音有点言过其实。选择多音字的操作程序还是无法代劳。最多是程序自动循环,避免操作者不停地按“下一记录”按钮手忙脚乱。但这也很有意义啊。

还是在dp2manager中打开编辑相关书目库的dp2circulation_marc_autogen.cs脚本文件。

在Main()函数中适当位置增加一个功能入口:


            // 批加拼音
            actions.NewItem("批加拼音", "为当前记录以及同库的其他后方记录重新加拼音", "BatchAddPinyin", false);

在MyHost类的适当位置增加一个函数BatchAddPinyin()的代码:

    void BatchAddPinyin()
    {
        int nRet = 0;
        Stop stop = new DigitalPlatform.Stop();
        stop.Register(this.DetailForm.MainForm.stopManager, true); // 和容器关联
        stop.Style = StopStyle.EnableHalfStop;
        stop.BeginLoop();

        try
        {

            for (; ; )
            {
                Application.DoEvents();
                if (stop.State != 0)
                    break;
                nRet = AddPinyin(this.PinyinCfgXml);
                if (nRet == -1)
                    break;
                nRet = this.DetailForm.DoSaveAll();
                if (nRet == -1)
                    break;
                nRet = this.DetailForm.SafeLoadRecord(this.DetailForm.BiblioRecPath, "next");
                if (nRet <= 0)
                    break;
            }

        }
        finally
        {
            stop.EndLoop();
            stop.Unregister();
        }

    }

代码修改完毕。保存它。然后去试验一下吧。

这个功能是从当前记录位置,顺次处理同一书目库的ID号更大的后面的记录。直到操作者在主窗口的工具条上按停止按钮,或者遇到数据库的最后一条记录被处理完。

代码中的Stop类对象,是用来表达主窗口工具条上的停止按钮的。Stop类对象可以堆叠,多重循环可以堆叠多次。这里就不展开介绍了。

除了为了循环和停止而书写的代码外,实际上加拼音和保存记录的代码都非常简单明了。



发表时间: 2011-08-11 16:55:24
最后修改时间: 2011-08-11 16:55:58



  • 普通文章 神奇的脚本 (一) 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) [点击:1259]
  • 普通文章 批删除拼音 xietao 2011-08-11 17:01:54 (ID:666) [点击:1315]
  •  

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