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

点击:1350

[顶层访客留言] [回复顶层(需要先登录)] [表状] [详细]
[回复留言] [回复(需要先登录)] [引用(需要先登录)]普通文章跟帖
文章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[点击:43084]
  • 普通文章 运行条件 xietao 2011-08-11 15:40:24 (ID:660) [点击:1300]
  • 普通文章 新的加拼音功能 xietao 2011-08-11 15:50:42 (ID:661) [点击:1343]
  • 普通文章 删除全部拼音子字段的功能和代码 xietao 2011-08-11 16:14:26 (ID:662) [点击:1421]
  • 普通文章 老的代码实现不了老规则加拼音 xietao 2011-08-11 16:27:13 (ID:663) [点击:1416]
  • 普通文章 选择多音字的缓存 xietao 2011-08-11 16:44:19 (ID:664) [点击:1270]
  • 普通文章 批加拼音! xietao 2011-08-11 16:55:24 (ID:665) [点击:1350]
  • 普通文章 批删除拼音 xietao 2011-08-11 17:01:54 (ID:666) [点击:1420]
  •  

    在线用户
    访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客 (我自己)   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客
    当前栏目在线用户数 72, 总在线用户数 78