• WizKnowledge和网文快捕(CyberArticle)的比较

    发表于 2010年02月2日 魏 拾俊 8 条评论
    经常会有朋友问我,应该用WizKnowledge还是网文快捕(CyberArticle)。下面就做一个比较。
     
    WizKnowledge的设计目标:个人文字信息的管理以及简单的日程管理,提供随时随地的访问自己的资料的能力,并可以方便的共享自己的资料。
     
    CyberArticle设计的目标:完整保存网页,提供强大的管理功能,注重于制作电子书,同时提供局域网内的资料共享功能。

    阅读全文 »

  • CyberArticle宏 – 高级排序

    发表于 2009年06月18日 魏 拾俊 1 条评论

    利用这个宏,可以对节点进行高级排序:

    1:从节点标题中提取第一个数字,然后按照从小到大的顺序排序。

    2:从节点标题中提取两个数字,按照先比较第一个数字,再比较第二个数字的方式进行排序(从小到大)。例如通常标题的命名1.1, 1.2, …, 1.10, 1.11, 2.1, 2,2, …, 2.10, 2.11 …

    3:从标题中提取中文数字,然后排序,例如第一章,第二章,第三章, …,第十章,第十一章…

    注意:

    1. 提取中文数字功能,有一定的问题,主要是中文的零。例如一千零一夜,会当成101,而不是1001,使用的时候需要注意。
    2. CyberArticle宏排序,不是给文件夹的子节点排序,而是对选中的节点同级的节点进行排序。
    3. 您也可以使用这个宏作为模板进行修改,实现更多的排序方式。

    请下载附件后解压缩,然后双击里面的文件,就可以进行安装。(CyberArticle 5.3或者更高的版本)。

     

     

  • SQL Server 和SQL Server Express书籍优化

    发表于 2009年06月17日 魏 拾俊 3 条评论

    SQL Server 和SQL Server Express书籍,如果数据量很大,可以进行优化。优化后,可以获得很好的搜索速度,另外,点击文章里面的链接,反应速度也大大加快。

    准备软件

    1. CyberArticle最新测试版本(2009年6月17号以及以后的版本)。从这个版本开始,优化了节点操作速度,支持SQL Server数据库全文搜索语法。
    2. SQL Server Management Studio或者SQL Server Management Studio Express,分别对应SQL Server和SQL Server Express。其中SQL Server Management Studio可以和SQL Server一起安装,SQL Server Management Studio Express可以在微软的网站下载。本文使用SQL Server 2008 180天开发版本。

    注意:默认情况下,CyberArticle无法连接到 SQL Server 2008 / SQL Server Express 2008 数据库,请点击这里查看解决办法

    开启SQL Server全文搜索功能

    1、在SQL Server Management Studio中,找到书籍数据库,在数据库名称上面点击右键,在菜单中选择属性

    2、出现的对话框中,选择File,然后选择 Use full-text indexing(使用全文检索索引)。

    点击OK(确定)按钮,关闭对话框。

    3、展开数据库名节点,定位到数据库名StorageFull Text Catalogs,在这个节点上面,点击右键,选择 New Full-Text Catalog。

    在出现的对话框里面,按照下图输入:

    点击OK(确定)按钮就可以了。

    4、展开数据库名节点,定位到数据库名Tablesdbo.Nodes,在这个节点上面,点击右键,选择 Full-Text index -> Define Full-Text index:

    在出现的向导中,依次点击Next(下一步)按钮。在选择列的对话页面中,按照下面的方式选择:

    在跟踪修改的页面中,根据自己的需要进行选择:

    • 自动
    • 手工
    • 不跟踪修改

    这些选项,主要用来设置 数据修改后,如何更新全文搜索引擎的方式。

    然后下一步,选择Catalog,选择我们刚才创建的cyberarticle即可。

    然后一直下一步,直至完成。此时,就设置好了全文搜索。您需要等待数据库进行全文索引的建立。这个过程可能需要很长的时间,例如几个小时甚至一整天或者更长,数据库的体积,也会不断地增大(我测试的数据库,从4G一直增加到8G,还没有结束)。

    在CyberArticle里面启用数据库的全文搜索功能

    在CyberArticle里面,打开书籍,然后在书籍节点上面,点击右键,选择“属性”,在属性对话框里面,切换到数据库Tab:

    选中下面的“This database support full text search”。然后点击确定按钮。就可以在CyberArticle里面使用数据的全文搜索功能进行搜索。

    测试结果

    • 硬件:Thinkpad T42, 1.7G CPU, 1G内存,160G 5400转硬盘。
    • 软件:Windows 7 RC,SQL Server 2008 开发版。
    • 数据库:Nodes表有144057条数据,139013条记录是文章,数据库体积,在没有全文搜索之前3G多,增加全文检索后,7G多(还未完成)。

    搜索速度比较:(最多返回50条记录)

    • 优化前:搜索中文字符串,需要5分钟甚至更长的时间
    • 优化后:15秒内,出现结果

    在文章浏览器内点击一个链接,CyberArticle需要对这个链接进行搜索,查找是否已经保存在书籍中。

    • 优化前:几分钟都没有反应
    • 优化后:10秒内正确打开已经保存的网页

    结论

    利用优化后的数据库和CyberArticle,可以极大的加快搜索速度。因此,对于企业用户,按照上面的方式进行优化后,利用CyberArticle和SQL Server,完全可以胜任大型的知识库建立,并获得良好的效率。毕竟从上面的测试看,一个很老的笔记本,就可以达到这样的效率,如果更换成专用的数据库服务器,效率可以更高。

    其它

    如果您需要进行测试,请向我索取最新的支持数据库全文检索的CyberArticle测试版本。如果CyberArticle新的版本已经发布,请直接下载使用。

  • 让CyberArticle支持SQL Server 2008或者SQL Server Express 2008

    发表于 2009年06月17日 魏 拾俊 1 条评论

    默认安装的SQL Server 2008或者SQL Server Express 2008,CyberArticle无法连接到数据库。请按照下面的方式设置:

    开始菜单 -> 所有程序 -> SQL Server 2008 -> Configuration Tools -> SQL Server Configuration Manager。

    打开SQL Server Configuration Manager,切换到 SQL Server Network Configuration -> Protocols for MSSQLSERVER,如下图:

    在右边的TCP/IP上面,点击右键,菜单中选择Enable (启用)。

    然后停止并重新启动SQL Server服务,就可以了:

    处理后,CyberArticle就可以正常连接到SQL Server 2008数据库了。

     

  • 将网博士的数据转换到CyberArticle(网文快捕)中

    发表于 2009年06月16日 魏 拾俊 4 条评论

    WebSaver(网博士) to CyberArticle xbook 1.0-2009.4.26社区版

    将WebSaver保存的资料数据,转换成CyberArticle5.2以上版本的xbook数据格式

    使用前提环境:

    1.  操作系统:Windows 2000/XP/2003/Vista
    2.  已安装.Net FrameWork 2.0以上环境(下载http://www.greendown.cn/soft/9476.html)
    3.  已安装CyberArticle 5.3(下载http://wizbrother.com/cyberarticle)
    4.  建议WebSaver请升级到新版本4.3以后使用

    反馈地址:

    http://cn.wizbrother.net/thread-774-1-1.html

    使用说明
    1. 选择WebSaver的数据文件wsb文件
    2. 点击“转换为目录”,将wsb文件转换为候选的目录树
    3. 在生成的树中,选择要导入的内容
    4. 点击“开始转换”,即可生成一个新的xbook文件
    5. 处理大的word文档转换会有些慢,请耐心等待。

    阅读全文 »

  • 将Mybase的数据转换到CyberArticle(网文快捕)中

    发表于 2009年06月16日 魏 拾俊 3 条评论

    Mybase to CyberArticle xbook 1.0-2009.4.26社区版

    将Mybase保存的资料数据,转换成CyberArticle5.2以上版本的xbook数据格式

    使用前提环境:

    1.  操作系统:Windows 2000/XP/2003/Vista
    2.  已安装.Net FrameWork 2.0以上环境(下载http://www.greendown.cn/soft/9476.html)
    3.  已安装CyberArticle 5.23(下载http://wizbrother.com/cyberarticle)
    4.  建议Mybase请升级到新版本5.5以后使用(下载http://wjjsoft.com)
    阅读全文 »

  • 将FireFox ScrapBook插件保存的资料转换成CyberArticle的数据

    发表于 2009年06月16日 魏 拾俊 2 条评论

    ScrapBook to CyberArticle xbook 1.0-2009.4.26社区版

    将Firefox插件ScrapBook保存的网页,导出成CyberArticle5.2以上版本的xbook数据格式

    使用前提环境:

    1.  操作系统:Windows 2000/XP/2003/Vista
    2.  已安装.Net FrameWork 2.0以上环境(下载http://www.greendown.cn/soft/9476.html)
    3.  已安装CyberArticle 5.23(下载http://wizbrother.com/cyberarticle)

    阅读全文 »

  • 删除CyberArticle书籍中的导入的附件URL(文件名)

    发表于 2009年06月16日 魏 拾俊 2 条评论

    问题

    导入的附件能不能搞个选项,可以选择要不要包含哪个URL呀,因为就本人而言有很多附件都是在本地导入的,我不想把这附件的原始路径显示出来,去又去不掉,实在是碍眼呀。

    解决办法

    下载解压缩附件,然后安装这个宏,就可以了。在CyberArticle里面,选中一个书籍,然后执行这个宏。可以将书籍中所有导入的附件(也就是附件URL是本地文件),URL全部清空。

    宏代码

    var objCA = new ActiveXObject(“CyberArticle.CAAutomationApp”);
    //
    var objSelectedNodes = objCA.SelectedNodes;
    if (objSelectedNodes != null && objSelectedNodes.Count > 0)
    {
        var objSelectedNode = objSelectedNodes.Item(0);
        var objBook = objSelectedNode.Book;
        var attachments = objBook.Attachments;
        for (var i = 0; i < attachments.Count; i++)
        {
            var att = attachments.Item(i);
            var url = att.URL;
            if (0 == url.indexOf(“http://”))
                continue;
            //
            att.url = “”;
        }
    }

     

     

  • 利用CyberArticle定时自动下载保存博客的新文章

    发表于 2009年06月15日 魏 拾俊 5 条评论

    利用CyberArticle的二次开发功能,可以很容易的写一个下载博客文章的脚本。然后利用计划任务,定时运行,就可以自动下载保存任意博客的文章了。

    下面就是脚本代码:(善用佳软的例子)

    /*
    功能:
    定期将博客中新增的文章,保存到 [博客集合] 书籍中。

    注意:
    对于Windows Vista/7系统,如果您开启了账户控制,第一次运行本脚本的时候,请这样操作:
    1:资源管理器,找到CyberArticle安装目录,例如:C:\Program Files\WizBrother\CyberArticle
    2:找到regfiles.bat文件,然后在上面点击鼠标右键,选择“以管理员运行”(Run as Administrator)


    其他操作系统,不需要这个操作。

    使用说明:
    请修改以下参数:
    BOOK_NAME:默认的书籍名称。您可以修改这个参数,将数据保存到您指定的书籍中。也可以不作修改,CyberArticle会自动创建这个书籍。
    BLOG_NAME:博客名称,例如善用佳软,魏拾俊的博客等等。
    RSS_URL:博客的RSS地址。

    注意:

    每个博客,只保存一次,即使有新的回复,也不会重新保存。新保存的文章,保存在 博客集合\博客名称\XXXX年\X月\X日 文件夹内

    使用:
    双击运行这个脚本就可以了。运行后会自动将新的文章保存到书籍中。

    技巧:

    您可以将这个脚本放在程序的启动组里面,每次启动电脑后,可以自动运行。
    或者添加到计划任务中,在每天空闲的时刻,例如中午吃饭时间运行。吃完饭后,就可以看到最新的文章了。
    如果您同时喜欢看很多的博客,您可以利用这个脚本,制作多个这样的脚本,然后加入计划任务,自动运行,每天都可以自动将所有的博客自动保存。
    //
    http://weishijun.com/
    */

    //
    //—————————————————-
    //博客定时保存脚本参数
    //注意:引号必须是英文半角
    //书籍名称
    var BOOK_NAME = “博客集合”;
    //Blog名称
    var BLOG_NAME = “善用佳软”;
    //Blog的RSS地址
    var RSS_URL = “http://feed.xbeta.info/”
    //
    //
    //
    //—————————————————-
    var objShell = new ActiveXObject(“WScript.Shell”);
    var objCommonUI = new ActiveXObject(“CyberArticleCommonUI.CACommonUI”);
    function jsAlert(msg)
    {
        return objShell.Popup(msg, 10000, “CyberArticle”, 0);
    }
    //获得MyBooks文件夹。如果是绿色版本,则默认保存在安装目录下面的My Books文件夹
    function GetMyBooksPath()
    {
        var strMyBooksPath = objShell.RegRead(“HKEY_CURRENT_USER\\Software\\WizBrother\\CyberArticle\\MyBooksFolder”);
        if (strMyBooksPath == null || strMyBooksPath == “”)
        {
            var objCyberArticleAppPath = objCommonUI.CyberArticleAppPath;
            return objCyberArticleAppPath + “My Books\\”;
        }
        //
        if (strMyBooksPath[strMyBooksPath.length - 1] != ‘\\’)
            strMyBooksPath = strMyBooksPath + “\\”;
        //
        return strMyBooksPath;
    }
    //有些系统无法正常创建BookBuilder对象,先注册BookBuilder.exe
    function RegBookBuilder()
    {
        var objCyberArticleAppPath = objCommonUI.CyberArticleAppPath;
        var filename = objCyberArticleAppPath + “bookbuilder.exe”;
        var commandline = “\”" + filename + “\” /RegServer”
        //
        objShell.Exec(commandline);
        //等待2秒钟
        WScript.Sleep(2000);
    }
    /*
    function RunBookBuilder()
    {
        RegBookBuilder();
        //
        var objCyberArticleAppPath = objCommonUI.CyberArticleAppPath;
        var filename = objCyberArticleAppPath + “bookbuilder.exe”;
        //
        var oExec = objShell.Exec(filename);
        //
        //等待2秒钟
        WScript.Sleep(2000);
    }
    */

    //找到channel
    function GetItemNodes()
    {
        var objXml = new ActiveXObject(“MSXML.DOMDocument”);
        objXml.async = false;
        objXml.load(RSS_URL);
        //
        var channelNode = objXml.selectSingleNode(“/rss/channel”);
        //
        return channelNode.childNodes;
    }
     
    //c查找书籍,按照书籍名称
    var objBookCollection = new ActiveXObject(“CyberArticleBook.CABookCollection”);
    var bookguid = null;
    for (var i = 0; i < objBookCollection.Count; i++)
    {
        if (objBookCollection.BookName(i) == BOOK_NAME)
        {
            bookguid = objBookCollection.GUID(i);
            break;
        }
    }
    //如果没有找到,新增
    if (bookguid == null || bookguid.length == 0)
    {
        var strNewBookFileName = GetMyBooksPath() + BOOK_NAME + “.xbook”;
        var objBookTools = new ActiveXObject(“CyberArticleBookTools.CABookTools”);
        bookguid = objBookTools.CreateAccessBook(strNewBookFileName);
    }
    //打开书籍
    var objBook = new ActiveXObject(“CyberArticleBook.CABook”);
    objBook.Open(bookguid);
    //
    var myDate=new Date();
    var year = myDate.getFullYear();
    var month = myDate.getMonth() + 1;
    var day = myDate.getDate();
    //
    var folderpath = BLOG_NAME + “\\” + year + “年\\” + month + “月\\” + day + “日\\”;
    //
    //
    var arrayLinks = new Array();
    //
    var nodes = GetItemNodes();
    for (var i = 0; i < nodes.length; i++)
    {
        var node = nodes[i];
        //
        if (node.nodeType != 1)
            continue;
        //
        if (node.nodeName != “item”)
            continue;
        //
        var linkNode = node.selectSingleNode(“link”);
        if (null == linkNode)
            continue;
        //
        //
        var link = linkNode.text;
        if (link == null || link.length == 0)
            continue;
        //
        try
        {
            //检查是否已经保存,如果保存,继续
            var nodesBook = objBook.NodesFromURL(link);
            if (nodesBook != null && nodesBook.Count > 0)
                continue;
        }
        catch (e)
        {
        }
        //
        var titleNode = node.selectSingleNode(“title”);
        var title = null;
        if (titleNode != null)
            title = titleNode.text;
        if (title == null)
            title = “”;
        //
        arrayLinks.push(link);
        arrayLinks.push(title);
    }
    //下载任务
    if (arrayLinks.length > 0)
    {
        RegBookBuilder();
        //
        var objCABookBuilder = new ActiveXObject(“CyberArticle.CABookBuilderAutomationApp”);
        //
        for (var i = 0; i < arrayLinks.length; i += 2)
        {
            var link = arrayLinks[i];
            var title = arrayLinks[i + 1];
            //
            if (title.length == 0)
            {
                objCABookBuilder.AddJob(bookguid, folderpath, link, title, “Default”, 0, false, true, 0);
            }
            else
            {
                objCABookBuilder.AddJob(bookguid, folderpath, link, title, “Default”, 0, true, true, 0);
            }
        }
        //
        objCABookBuilder.StartDownload();
    }

    附件是我制作的三个脚本,您可以拿来进行修改。以满足您的需求。

    如果您制作了其它的脚本,可以到这里共享给其他用户。

    http://cn.wizbrother.net/forum-23-1.html

     

     

  • CyberArticle无法新建,打开任何书籍的解决办法

    发表于 2009年06月5日 魏 拾俊 8 条评论

    如果CyberArticle无法新建,打开任何书籍,通常的情况,就是Windows 的MDAC组件出现了问题。您可以尝试按照下面的方法解决:

    下载最新版本的MDAC组件。目前最新版本是MDAC 2.8 Sp1。可以在这里下载:

    http://www.microsoft.com/downloadS/details.aspx?FamilyID=78cac895-efc2-4f8e-a9e0-3a1afbd5922e&displaylang=en&Hash=7iG6%2fL1eUIgbqwEyEiYifTT3X6Q7PVXVYueAuSKgnDqRhQy4OJm%2bRR8HawEPrNPH3bCCsozX9iMOsQLbv3PAuA%3d%3d

    您也可以自己到微软的网站,搜索合适的版本,然后下载。

    下载后可以直接运行安装。如果提示无法安装,如下图:

    按照下面的方法解决:

    在我的电脑里面,找到您下载的文件,在MDAC_TYP.exe上面点击右键,然后选择用压缩软件解压缩(WinZip, WinRAR, 7-Zip)都可以进行解压缩

    解压缩后,进入解压缩后的目录,找到mdacxpak.inf文件,然后在上面点击右键,选择安装(Install)。

    通常情况下,就可以安装然后提示重新启动系统。重新启动后,CyberArticle可以恢复正常。(我在WinXP sp2下面测试通过)。

    如果仍然不能安装,您可以按照下面的方式处理:

    1. 在前面的目录里面,找到MDACXPAK.CAB,然后解压缩这个文件到任意一个文件夹(WinZip, WinRAR, 7-Zip都可以解压缩)。

    2. 在解压缩后的目录里面,建立一个批处理文件MAKEDIRS.BAT,然后运行。 批处理内容如下:
    md ADO
    copy /b MSADER15.DLL ADO\*.*
    copy /b MSADO15.DLL ADO\*.*
    copy /b MSADO20.TLB ADO\*.*
    copy /b MSADO21.TLB ADO\*.*
    copy /b MSADOMD.DLL ADO\*.*
    copy /b MSADOR15.DLL ADO\*.*
    copy /b MSADOX.DLL ADO\*.*
    copy /b MSADRH15.DLL ADO\*.*
    copy /b MSJRO.DLL ADO\*.*

    md MSADC
    copy /b MSADCE.DLL MSADC\*.*
    copy /b MSADCER.DLL MSADC\*.*
    copy /b MSADCF.DLL MSADC\*.*
    copy /b MSADCFR.DLL MSADC\*.*
    copy /b MSADCO.DLL MSADC\*.*
    copy /b MSADCOR.DLL MSADC\*.*
    copy /b MSADCS.DLL MSADC\*.*
    copy /b MSADDS.DLL MSADC\*.*
    copy /b MSADDSR.DLL MSADC\*.*
    copy /b MSDAPRSR.DLL MSADC\*.*
    copy /b MSDAPRST.DLL MSADC\*.*
    copy /b MSDAREM.DLL MSADC\*.*
    copy /b MSDAREMR.DLL MSADC\*.*
    copy /b MSDFMAP.DLL MSADC\*.*

    md “OLE DB”
    copy /b MSDADC.DLL “OLE DB\*.*”
    copy /b MSDAENUM.DLL “OLE DB\*.*”
    copy /b MSDAER.DLL “OLE DB\*.*”
    copy /b MSDAORA.DLL “OLE DB\*.*”
    copy /b MSDAOSP.DLL “OLE DB\*.*”
    copy /b MSDAPS.DLL “OLE DB\*.*”
    copy /b MSDASC.DLL “OLE DB\*.*”
    copy /b MSDASQL.DLL “OLE DB\*.*”
    copy /b MSDASQLR.DLL “OLE DB\*.*”
    copy /b MSDATL2.DLL “OLE DB\*.*”
    copy /b MSDATT.DLL “OLE DB\*.*”
    copy /b MSDAURL.DLL “OLE DB\*.*”
    copy /b MSXACTPS.DLL “OLE DB\*.*”
    copy /b OLEDB32.DLL “OLE DB\*.*”
    copy /b OLEDB32R.DLL “OLE DB\*.*”
    copy /b OLEDB32X.DLL “OLE DB\*.*”

    3. 复制三个字文件夹(ADO,MSADC,OLE DB)到C:\Program Files\Common Files\System\,覆盖存在的文件和文件夹。

    注意,如果您的操作系统没有安装在C盘,则需要自己修改上面的路径。

    4. 在C:\Program Files\Common Files\System\文件夹里面,创建一个 REGFILES.BAT,然后运行。内容如下:

    regsvr32 /u /s ADO\msado15.dll
    regsvr32 /u /s ADO\msador15.dll
    regsvr32 /u /s ADO\msadrh15.dll
    regsvr32 /u /s ADO\msadomd.dll
    regsvr32 /u /s ADO\msadox.dll
    regsvr32 /u /s ADO\msjro.dll
    regsvr32 /u /s MSADC\msadce.dll
    regsvr32 /u /s MSADC\msadcf.dll
    regsvr32 /u /s MSADC\msadco.dll
    regsvr32 /u /s MSADC\msadds.dll
    regsvr32 /u /s MSADC\msdaprst.dll
    regsvr32 /u /s MSADC\msdarem.dll
    regsvr32 /u /s MSADC\msdfmap.dll
    regsvr32 /u /s “OLE DB\oledb32.dll”
    regsvr32 /u /s “OLE DB\msxactps.dll”
    regsvr32 /u /s “OLE DB\msdaenum.dll”
    regsvr32 /u /s “OLE DB\msdaurl.dll”
    regsvr32 /u /s “OLE DB\msdatt.dll”
    regsvr32 /u /s “OLE DB\msdasql.dll”
    regsvr32 /u /s “OLE DB\msdaosp.dll”
    regsvr32 /u /s “OLE DB\msdaora.dll”
    regsvr32 /u /s “OLE DB\msdaps.dll”

    regsvr32 /s ADO\msado15.dll
    regsvr32 /s ADO\msador15.dll
    regsvr32 /s ADO\msadrh15.dll
    regsvr32 /s ADO\msadomd.dll
    regsvr32 /s ADO\msadox.dll
    regsvr32 /s ADO\msjro.dll
    regsvr32 /s MSADC\msadce.dll
    regsvr32 /s MSADC\msadcf.dll
    regsvr32 /s MSADC\msadco.dll
    regsvr32 /s MSADC\msadds.dll
    regsvr32 /s MSADC\msdaprst.dll
    regsvr32 /s MSADC\msdarem.dll
    regsvr32 /s MSADC\msdfmap.dll
    regsvr32 /s “OLE DB\oledb32.dll”
    regsvr32 /s “OLE DB\msxactps.dll”
    regsvr32 /s “OLE DB\msdaenum.dll”
    regsvr32 /s “OLE DB\msdaurl.dll”
    regsvr32 /s “OLE DB\msdatt.dll”
    regsvr32 /s “OLE DB\msdasql.dll”
    regsvr32 /s “OLE DB\msdaosp.dll”
    regsvr32 /s “OLE DB\msdaora.dll”
    regsvr32 /s “OLE DB\msdaps.dll”

    以上操作,如果您的系统是Vista或者Win7,您需要使用管理员身份运行。

    经过操作后,应该就可以恢复正常了。

    参考文章:

    http://www.trinet.co.uk/support/kb.aspx?kbid=000027