??xml version="1.0" encoding="utf-8" standalone="yes"?>久久亚洲2019中文字幕,亚洲国产成人久久精品动漫,亚洲欧美一区二区三区久久 http://www.shnenglu.com/codejie/category/13873.htmlUsing C++ zh-cn Mon, 07 Apr 2014 15:33:07 GMT Mon, 07 Apr 2014 15:33:07 GMT 60 LingosHook : WordExport Update http://www.shnenglu.com/codejie/archive/2013/10/30/203982.htmlcodejie codejie Tue, 29 Oct 2013 16:06:00 GMT http://www.shnenglu.com/codejie/archive/2013/10/30/203982.html http://www.shnenglu.com/codejie/comments/203982.html http://www.shnenglu.com/codejie/archive/2013/10/30/203982.html#Feedback 4 http://www.shnenglu.com/codejie/comments/commentRss/203982.html http://www.shnenglu.com/codejie/services/trackbacks/203982.html
上上上周, 一'深度用户'来信, 来QQ (没来?? 导出的单词能高亮? 解释能往后点? 词典标题能加个底色不? 能在单词前加个序号不? ?...?
我回{?: 不能.
'深度用户'? 我还会回来的...
我回{? ? 都能...
好吧, 我欺骗了?-- 因ؓ最l我只搞定了'深度用户'的部分要? 原谅我吧, 其它的真的太'复杂'?..
于是, 非常'感谢'q位'深度用户', 旉一q? 真的是正好一q啊, WordExport又一ơ迎来了更新...
1. 单HTML方式导出? 支持一定的自定义格式输?
在选择单HTML文g方式导出? 如下图所C? 可以指定输出时的单词大小, 颜色, 背景和风? 以及解释的羃q?
如若自定义某些数值时, 直接参考可选g的括号中的部分内容输入即? 下面是当'Font Size'gؓ'40pt'? 输出格式如下所C?
单词导出插g的具体用法请参考这?/a>, 下蝲q是?a href="http://www.shnenglu.com/codejie/archive/2010/07/23/108996.html">q里 , 源码q是?a >q里.
<---- 今天晚归, 没喝? 但还是有些兴奋的分割U?---->
再次感谢'深度用户'Jack, 也很抱歉长久没有更新LingosHook, 除了没有新需? 更多的是 -- 更多的时间拿ȝandroid (比如LAC , EL ), 或是其它目 ? q里再次感谢各位使用LingosHook, 虽然没有更新, 但我会一如既往地接受和回答大家的徏议与问题.
]]>LingosHook : LingosHook的x64版也来了 http://www.shnenglu.com/codejie/archive/2013/04/24/199667.htmlcodejie codejie Tue, 23 Apr 2013 16:37:00 GMT http://www.shnenglu.com/codejie/archive/2013/04/24/199667.html http://www.shnenglu.com/codejie/comments/199667.html http://www.shnenglu.com/codejie/archive/2013/04/24/199667.html#Feedback 59 http://www.shnenglu.com/codejie/comments/commentRss/199667.html http://www.shnenglu.com/codejie/services/trackbacks/199667.html 几个晚上的奋?LingosHook x64版可以见Z... q个版本是在LingosHook v1.6.700上修改了,主要更改了HOOK库部??64位的HWND是不一?长了很多,D无法定位.开始以为是API改了,后来发现走错路了,API一个没?只是所有整数变?4位了... 实际没有全部改好,所有的插g都不能正怋?/span>,错误出现在插件dll讉K数据库是异常,q个问题q没定位,不知道是64位不允许dllq程讉K,q是使用的wxSQLite库不支持q种讉K方式;不论哪个,我都怕一时搞不定?..所?请偏执于x64,喜欢鲜,且不用插件的同学?q里下蝲 ... 除了插g问题说明下外,q有是再强调下,q个版本只能同Lingoes的x64版本使用 ,x86的是没法Hook上的. 不知道算不算故意吐槽,x64版本的Lingoes在我的D版Win7上不是很E_,l常跟LingosHook一hexplorer.exe搞死,q个有点猛哦... (估计x64的问题多?但大家先玩着q个,Ҏ再多Ҏ间敲LAC?..) ]]> LingosHook : Lingoes的x64版来?/title> http://www.shnenglu.com/codejie/archive/2013/04/19/199573.htmlcodejie codejie Fri, 19 Apr 2013 14:43:00 GMT http://www.shnenglu.com/codejie/archive/2013/04/19/199573.html http://www.shnenglu.com/codejie/comments/199573.html http://www.shnenglu.com/codejie/archive/2013/04/19/199573.html#Feedback 1 http://www.shnenglu.com/codejie/comments/commentRss/199573.html http://www.shnenglu.com/codejie/services/trackbacks/199573.html 一周不在线,Lingoes变成2.9.1?..不过也正?一般新版本发布后马上就会来?补丁?...臛_我是l常q样?.. 是刚到家查看blog?才发现Lingoes升?有跟帖说LingosHook没法Hook住新版了...我一直担心这?不过一?补丁'不会太大变化?x应该是个?但还是赶紧下载来试试.一试啊,果然有不兼容问题?.. LingoesZ个x64?LingosHook是不支持64位版本的.为啥?单啊,因ؓp水^,可以说完?搞不?什么x86,x64的区?.. l想来应该是API有差?q好,LingosHookq能l箋兼容2.9.1的非x64?..?找个旉google下Hook相应的x64的APIs?希望只是API问题,不然只能再发个帖子说咱LingosHook不支持x64?.. (说到google,想起以前的一个吐槽来,意思是?google让程序员的世界变q了...) ]]> LAC: Demo Dictionary v2 http://www.shnenglu.com/codejie/archive/2013/04/06/199142.htmlcodejie codejie Sat, 06 Apr 2013 03:29:00 GMT http://www.shnenglu.com/codejie/archive/2013/04/06/199142.html http://www.shnenglu.com/codejie/comments/199142.html http://www.shnenglu.com/codejie/archive/2013/04/06/199142.html#Feedback 5 http://www.shnenglu.com/codejie/comments/commentRss/199142.html http://www.shnenglu.com/codejie/services/trackbacks/199142.html q几个晚?Z自己q几天的需?也ؓ了研I下后面的LAC2,lLAC的Native Dictoinary的Demo应用增加了如下功? 1. 支持多词?增加了对Vicon Chinese-English Dictionary; 2. 支持了TTS:可以发音?但还只能说English; 3. 支持XSL方式输出:可以方便定义输出格式? 上图? p两张图了,临时修改,没啥大的变化,p出格式边?点击单词会发?其他的请?Demo V1 的说明了. 老地?/a>下蝲,安装时请卸蝲前一个版?/strong>,如果安装?.. ]]> LAC: Lingoes.XSL http://www.shnenglu.com/codejie/archive/2013/04/03/199083.htmlcodejie codejie Wed, 03 Apr 2013 15:43:00 GMT http://www.shnenglu.com/codejie/archive/2013/04/03/199083.html http://www.shnenglu.com/codejie/comments/199083.html http://www.shnenglu.com/codejie/archive/2013/04/03/199083.html#Feedback 0 http://www.shnenglu.com/codejie/comments/commentRss/199083.html http://www.shnenglu.com/codejie/services/trackbacks/199083.html q两天晚上在忙着修改LAC的Navite Dictionary演示E序,d对多词典的支?一来可以ؓ后面LAC2的开发积累点l验,二来,也是主要原因是下个月我自己可能要用到...?自己敲的app,实际自己使用的时间不如敲打时间的癑ֈ之一... q次支持了中文Vicon词典,敲字q程中碰到曾l没有考虑到很多问?卡了我很多天.目前看除了那个DES加密破解不了?像字W集~码,XML输出什么的都还能搞?应该可以拿到LAC2中直接用?当然那个cursor.MoveToFirst()L的问题估计需要到旉新设计下数据库表来解决了... 今天记录下对XSL的认??XML认识了那么久,从来没有好好静心研究q?q次碰到钉子了...也好,搞明白了q个,在也不用自己分解XML再拼串输Z...不论对不?贴上再说...(只是个draft,q我自q?.) 更新?来张囑օ,使用xslt输出xmlq是很cool的啊..(q单词代表我的心...)
<? xml version="1.0" encoding="UTF-8" ?> < xsl:stylesheet version ="1.0" xmlns:xsl ="http://www.w3.org/1999/XSL/Transform" > < xsl:output method ='html' version ='1.0' encoding ='UTF-8' indent ='yes'/> <xsl:template match ="LingosHook Android Client " > < HTML >< HEAD ></ HEAD >< BODY > < xsl:apply-templates /> </ BODY ></ HTML > </ xsl:template > < xsl:template match ="W" > < DIV > < SPAN style ="LINE-HEIGHT: 150%; COLOR: #000000; FONT-SIZE: 180%" >< B > < xsl:value-of select ="." /> </ B ></ SPAN > </ DIV > </ xsl:template > < xsl:template match ="D" > < DIV style ="LINE-HEIGHT: 120%; background-color:#cfddf0; COLOR:#000080; FONT-SIZE: 100%" >< B > < xsl:value-of select ="." /> </ B > </ DIV > </ xsl:template > < xsl:template match ="C" > < xsl:for-each select ="F" > < DIV style ="MARGIN: 5px 0px" > < xsl:apply-templates /> </ DIV > </ xsl:for-each > < xsl:if test ="E" > < DIV style ="MARGIN: 4px 0px; LINE-HEIGHT: 150%; FONT-SIZE: 100%" > < B > Extension: </ B > < FONT COLOR ="#229922" > < xsl:for-each select ="E" > < xsl:value-of select ="." /> </ xsl:for-each > </ FONT > </ DIV > </ xsl:if > </ xsl:template > < xsl:template match ="H" > < SPAN style ="LINE-HEIGHT: 120%; COLOR: #000000; FONT-SIZE: 120%" > < xsl:apply-templates /> </ SPAN > </ xsl:template > < xsl:template match ="L" > < DIV style ="MARGIN: 0px 0px 5px; " > < xsl:value-of select ="." /> </ DIV > </ xsl:template > < xsl:template match ="M" > [< FONT COLOR ="#009900" > < xsl:value-of select ="." /> </ FONT > ] </ xsl:template > < xsl:template match ="I" > < DIV style ="MARGIN: 0px 0px 5px" > < xsl:apply-templates /> </ DIV > </ xsl:template > < xsl:template match ="N" > < DIV style ="MARGIN: 4px 0px; LINE-HEIGHT: 120%; FONT-SIZE: 120%" > < xsl:apply-templates /> </ DIV > </ xsl:template > < xsl:template match ="U" > < FONT color ="#c00000" > < xsl:value-of select ="." /> </ FONT > </ xsl:template > < xsl:template match ="x" > < xsl:apply-templates /> </ xsl:template > < xsl:template match ="h" > < I > < xsl:value-of select ="." /> </ I > </ xsl:template > </ xsl:stylesheet > ]]> LingosHook: Met Leifeng http://www.shnenglu.com/codejie/archive/2013/03/15/198450.htmlcodejie codejie Fri, 15 Mar 2013 11:53:00 GMT http://www.shnenglu.com/codejie/archive/2013/03/15/198450.html http://www.shnenglu.com/codejie/comments/198450.html http://www.shnenglu.com/codejie/archive/2013/03/15/198450.html#Feedback 0 http://www.shnenglu.com/codejie/comments/commentRss/198450.html http://www.shnenglu.com/codejie/services/trackbacks/198450.html
LingosHook一直没有个使用说明,或者帮助文档什么的,q个问题?.1.0版本存?但我是装作看不?..
今天l于有h发飙?..
q?q?.q是什么样的精啊...于是我^静地回复?..Andy,
兄弟,让我说啥?img src="http://www.shnenglu.com/Images/dot.gif" alt="" />你简直就是雷锋同志再世啊
.
太激动了,无法冷静看视?img src="http://www.shnenglu.com/Images/dot.gif" alt="" />
Thanks,
Jie.
非常感谢... ]]> LAC: Demo Dictionay v1 http://www.shnenglu.com/codejie/archive/2013/02/13/197822.htmlcodejie codejie Wed, 13 Feb 2013 14:08:00 GMT http://www.shnenglu.com/codejie/archive/2013/02/13/197822.html http://www.shnenglu.com/codejie/comments/197822.html http://www.shnenglu.com/codejie/archive/2013/02/13/197822.html#Feedback 24 http://www.shnenglu.com/codejie/comments/commentRss/197822.html http://www.shnenglu.com/codejie/services/trackbacks/197822.html 明日回家,紧赶慢赶?LAC的Native Dictionary演示版终于敲好了,请到老地方下?/a>?.. 下蝲安装DemoDictionayOfLAC2.apk(q名字又怪又长啊..)?可见如下图标: W一ơ运行时,LAC要解压两个文件到SD卡中,旉大约需?U左?q还是在我的G7?估计你的是一闪而过,完全没感觉啊... 然后是ȝ面了.因ؓq个q只是个Demo,所以加了个期旉,l各??我加班加点个理由... 当前只有内置词典,LAC的核心的记忆,导入什么的,都还没有敲呢... 点击ȝ?应用切换到单词列表界? 上图?在输入框中输入字?应用立x索以此ؓ前缀的单?q列丑և?点击输入框后的按?清除所有输?每次大约昄25条记?向上拖动列表,界面下方显C?Release to load...'提示,此时村ּ拖动,应用加载其后单词数?(多说一?q个支持'release to load'的listview是俺自己写的,不信?a href="http://www.shnenglu.com/codejie/archive/2012/09/14/190565.html">q里 .) 点击L单词记录,界面切换臛_解释数据面. 在此界面?点击M地方,应用返回到前面单词列表界面.(不要用返回钮,那会退出应用的...) p?俺终于实CLingoes数据UL到Android上了(版权什么的先不说了...),哇哈?..来尝鲜的,q里下蝲 ! ]]> LAC: The Preview of Native Dictionary http://www.shnenglu.com/codejie/archive/2013/02/12/197809.htmlcodejie codejie Tue, 12 Feb 2013 13:33:00 GMT http://www.shnenglu.com/codejie/archive/2013/02/12/197809.html http://www.shnenglu.com/codejie/comments/197809.html http://www.shnenglu.com/codejie/archive/2013/02/12/197809.html#Feedback 2 http://www.shnenglu.com/codejie/comments/commentRss/197809.html http://www.shnenglu.com/codejie/services/trackbacks/197809.html 今日不吐?大过q的,希望各位都快?..刚跟同学说?-"保持快乐的心?啥事q完q再说了." 所?再传四张LAC的Native Dictionary演示版截?希望能给各位在这愉快的节日里再些开心的理由. 四张截图展示了对LD2不同字段数据的处?如何?打开LinogesҎ?像不?p多了?extension'D呢.嘿嘿... <---- 多聊几句的分割线 ----> 今日能发?得益于俺在老婆q小山村中搭设了WIFI|络,哇哈?.. 当处?一个收x收不CL山村?一个只有十几户的山村中,一个大q初二去其县城都C到网U的山村?却在搜烦时发现另外一个网l标识闪闪地跌,那真的是一U惊?一U孤岛收到家信的惊喜... ]]> LAC : The Preview of Native Dictionary http://www.shnenglu.com/codejie/archive/2013/01/15/197302.htmlcodejie codejie Tue, 15 Jan 2013 15:56:00 GMT http://www.shnenglu.com/codejie/archive/2013/01/15/197302.html http://www.shnenglu.com/codejie/comments/197302.html http://www.shnenglu.com/codejie/archive/2013/01/15/197302.html#Feedback 2 http://www.shnenglu.com/codejie/comments/commentRss/197302.html http://www.shnenglu.com/codejie/services/trackbacks/197302.html 今天是来U当前LAC Native Dictionary的Demo应用的进展情?Z吐槽?..(好吧,实际今天是来吐槽的..) 老规?先上图了~ 当前Demo应用的基本架子和功能炚w完成了,{真正敲完估计就界面上再来点变化?..q次不鼓励大家提?看吐槽先?.. (下面是吐槽?..) 真的h?..怎么说呢?好吧--我本是一只来自北方的?在南方的冬天?/strong>愣是 L了猴... q段旉可爱的宝宝越睡越?而我却越睡越晚了,因此冬日的夜变得来长...按理应该有更大把的时间挥霍到敲字?但~~d的双手握着零下(室内)的刻度板,依然坚持?jandan',?wow',是不敲一行LAC代码... 不知Z,换了环境以后,反而失M更多的往日激?来多的是对自ph字的怀疑和q,每个冬夜都是在这U纠l中,敲打寥寥数行代码便草草commit?.. 是因为全q没有做一个项目吗? 是因为新的工作压力吗? 是因为担忧自q未来? ... 有时真的担心沉在这U茫然中的我会不?_崩溃'...当然,也许只会是个'_分裂'而已..?.. 希望q一切只是冬日带来的'淡E忧伤'而已...q忧伤真的很伤h... 希望自己快回归?疯狂'敲字的时IZ?..q时I穿的不对... q一切还只能靠自?强大的精力?来纠正~~吐槽是一U反? 吐槽l束~很抱歉LAC的这个Native Dictionary Demo应用拖拖拉拉q么?׃把责Ll这'L?的冬?会不会是个好理由?嘿嘿... 好吧,无论怎样,哪怕是满手ȝ,我都保证敲完q个Demo!!! (透露个个人隐U?---l历q么q么多的敲字的冬?q然从没生q冻?嫉妒慕恨吗?嘿嘿...) ]]> LingosHook: Release 1.6.700 http://www.shnenglu.com/codejie/archive/2013/01/07/197089.htmlcodejie codejie Mon, 07 Jan 2013 14:16:00 GMT http://www.shnenglu.com/codejie/archive/2013/01/07/197089.html http://www.shnenglu.com/codejie/comments/197089.html http://www.shnenglu.com/codejie/archive/2013/01/07/197089.html#Feedback 50 http://www.shnenglu.com/codejie/comments/commentRss/197089.html http://www.shnenglu.com/codejie/services/trackbacks/197089.html
今天jan贴了张帖?发现个有的现象,在index的页面下,做copy to tag 的操作时,会有问题
个h遇到3ơ报错退?一ơ没报错,但没?/div>
我如常般地积极回复了...
@jan 呀,q现象真'有趣',那就是个bug?img src="http://www.shnenglu.com/Images/dot.gif" alt="" />回家我看看去?img src="http://www.shnenglu.com/Images/dot.gif" alt="" />谢谢?img src="http://www.shnenglu.com/Images/dot.gif" alt="" />
(以上内容有删?原文?a href="http://www.shnenglu.com/codejie/archive/2013/01/04/196956.html">q里.)
于是?有了这?a href="http://www.shnenglu.com/codejie/archive/2010/07/23/108996.html">1.6.700版本?..
1.修正Index面?使用'copy to tag'菜单时崩溃问?
q个bug是在1.6.618版本中引入的,具体说是?a 是不一L...
按照计划,LingosHook到现在是该再有个版本???不说啥了,真的不只是有Ҏ?..借此Z,升个版本,l箋l自׃懒下ȝ理由...嘿嘿..谢谢jan,希望修复了你的问?
]]>
LAC : The secret of ld2 http://www.shnenglu.com/codejie/archive/2012/12/03/195952.htmlcodejie codejie Mon, 03 Dec 2012 15:14:00 GMT http://www.shnenglu.com/codejie/archive/2012/12/03/195952.html http://www.shnenglu.com/codejie/comments/195952.html http://www.shnenglu.com/codejie/archive/2012/12/03/195952.html#Feedback 4 http://www.shnenglu.com/codejie/comments/commentRss/195952.html http://www.shnenglu.com/codejie/services/trackbacks/195952.html
q几个晚?周末除外)都在分解Lingoes-Extractor 作者的另外一个工E的代码, 同样是用于分析LD2文g?但仅仅一个java文g搞定了,对于我这LJAVA初学者来说真?太好?...
从第一ơ找到Extractor的代码v,我就一直很怀疑这位作者要不跟Lingoes有点关系,要不是一位真正的破解大师...因ؓExtractor太完了...代码不多,却非常清晰地标记q分解出了LD2的各个段的数?以及数据间的关系...我的怀疑来自其对ld2文g格式的认?每一D?每一个字节的意义都非常地准确地标C出?更神奇的是那?无从q踪'的魔? 例如, 单词索引间隔固定?0, 14字节的烦引数据块,{等...q些都是怎么推到出来的啊...
我对自己的怀疑更偏向于后?因ؓ通过查看作者的其他代码,光了分解了ld2文g?q包括其他多个词典的数据文g...(感到震惊的同学们,自己d观吧...?多说一?googlecode.com是个好地?..)
我ƈ不关心怀疑本w的{案, 因ؓ我已l非常开?--Extractorl让我有ZH视到Lingoes的ld2文g的秘?..
贴段代码, ?奖励'自己多夜的敲敲打?..(是我写的Java代码,表认真啊...)
private static void getData(final int index) throws IOException {
RandomAccessFile file = new RandomAccessFile("output.data", "r");
final ByteBuffer buf = ByteBuffer.allocate((int ) file.getChannel().size());
file.getChannel().read(buf);
buf.order(ByteOrder.LITTLE_ENDIAN);
int offset = 29;
final int idx[] = new int [6];//
getIndex(buf, offset * 10, idx);
if (idx[5] != idx[1]) {
Output("self xml = " + getXml(buf, idx[1], idx[5] - idx[1]));
}
if (idx[3] == 0) {
Output("word = " + getWord(buf, idx[0], idx[4] - idx[0]));
}
else {
int ref = idx[3];
int offsetword = idx[0];
final int lenword = idx[4] - idx[0];
while (ref -- > 0) {
offset = buf.getInt(lenInflatedWordsIndex + idx[0]);
getIndex(buf, offset * 10, idx);
Output("ref(" + offset + ") xml = " + getXml(buf, idx[1], idx[5] - idx[1]));
offsetword += 4;
}
Output("word = " + getWord(buf, offsetword, lenword));
}
file.close();
}
再整理几?要能琢磨个LAC2直接使用ld2的法子来的话,那就又可以进一大步了啊... ]]> LAC : Using Python to generate database http://www.shnenglu.com/codejie/archive/2012/11/01/194150.htmlcodejie codejie Thu, 01 Nov 2012 03:28:00 GMT http://www.shnenglu.com/codejie/archive/2012/11/01/194150.html http://www.shnenglu.com/codejie/comments/194150.html http://www.shnenglu.com/codejie/archive/2012/11/01/194150.html#Feedback 6 http://www.shnenglu.com/codejie/comments/commentRss/194150.html http://www.shnenglu.com/codejie/services/trackbacks/194150.html
是的,q两天我在玩Python!
ZlLACd内置的词? 需要将通过Lingoes-Extractor解出的数据导入到LAC使用的Sqlite? q个q程q不复杂 -- 解开ld2文g数据输出每条记录C个文本文件中,然后处理每一条记录导入到Sqlite中即?要是用C++来实?也就两个晚上的事??但这ơ我又蛋g...
大约一个月?工作中碰CDPython脚本,对于我这样习惯C++的h来说,看类似Python脚本跟天书差不多?..虽然上半q看了几天Perl,但到今天也只记得名字?..
于是q次'痛定思痛',军_搞v一个脚本语a?于是有了这ơ蛋疼的事情 -- 用Python实现LD2到Sqlite的导?
不多?有兴的直接看Python脚本?..
htmlparser.py
# !/usr/bin/python
# coding:utf-8
import string
from HTMLParser import HTMLParser
class MyParser(HTMLParser):
result = 0
levelField = -1
levelInfo = -1
flag = -1
# str = 'abandon = <C><E>abandons|abandoned|abandoning</E><F><H><M>a·ban·don || ə\'bændən</M></H><I><N><U>n.</U> 攄, 放Q; 狂热</N></I><I><N><U>v.</U> 丢弃; 中止, 攑ּ; 遗弃, 抛弃; 使放U?lt;/N></I></F></C>'
def handle_starttag(self, tag, attrs):
if tag == ' c ' :
self.flag = 0 # content
elif tag == ' e ' :
self.flag = 1 # extend
elif tag == ' f ' :
self.result.field.append(DictField())
self.levelField += 1
# self.levelInfo = -1
# print 'levelField =', self.levelField
self.flag = 2 # field
elif tag == ' l ' :
self.flag = 3 # link
elif tag == ' m ' :
self.flag = 4 # symbol
elif tag == ' i ' :
self.result.field[self.levelField].info.append(DictInfo())
self.levelInfo += 1
# print 'info == levelField = %s levelInfo = %s' % (self.levelField, self.levelInfo)
self.flag = 5 # info
elif tag == ' n ' :
self.flag = 6 # meaning
elif tag == ' u ' :
self.flag = 7 # category
def handle_endtag(self, tag):
if tag == ' u ' :
self.flag = 6 # meaning
def handle_data(self, data):
index = self.levelField
if self.flag == 1:
self.result.extend.append(data)
elif self.flag == 3:
self.result.field[self.levelField].link = data
elif self.flag == 4:
self.result.field[self.levelField].symbol = data
elif self.flag == 6:
# print 'meaning == index = %d' % index
self.result.field[self.levelField].info[index * 5 + self.levelInfo].meaning = data
# print 'meaning == levelField=%d levelInfo=%d' % (self.levelField, self.levelInfo)
# print 'meaning == info: %s' % self.result.field[self.levelField].info[self.levelInfo]
elif self.flag == 7:
# print 'category == index = %d' % index
self.result.field[self.levelField].info[index * 5 + self.levelInfo].category = data
# print 'category == levelField=%d levelInfo=%d' % (self.levelField, self.levelInfo)
# print 'category == info: %s' % self.result.field[self.levelField].info[self.levelInfo]
def parse(self, html, data):
# self.levelField = -1
# self.levelInfo = -1
# self.flag = -1
self.result = data
self.feed(html)
class DictInfo:
category = ''
meaning = ''
def __str__ (self):
return ' [category = %s meaning = %s] ' % (self.category, self.meaning)
class DictField:
symbol = ''
link = ''
info = [DictInfo() for i in range(0,25)]
def __str__ (self):
return ' [symbol = %s | link = %s info = %s] ' % (self.symbol, self.link, string.join(map(str, self.info)))
class DictData:
word = ''
extend = [] # stringlist
field = []
def __str__ (self):
return ' word = %s extend = %s field = %s ' % (self.word, string.join(map(str, self.extend)), string.join(map(str, self.field)))
def parseHtml(html, output):
parser = MyParser()
parser.parse(html, output)
parser.close()
def analyseLine(str, output):
pos = str.find(' = ' )
output.word = str[:pos]
html = str[pos + 3 :]
# print 'html=', html
parseHtml(html, output)
q个实现了从解开后的ld2记录到内部数据的解析;
data2xml.py
import string
# <X>
#<D>dictid</D>
#<E>E1</E>
#<E>E2</E>
#<F>
#<S>Symbol</S>
#<L>Link</L>
#<I>
#<C>category</C>
#<M>Meaning</M>
#</I>
#<I>
#<C>category</C>
#<M>Meaning</M>
#</I>
#</F>
#<F>
#<S>Symbol</S>
#<L>Link</L>
#<I>
#<C>category</C>
#<M>Meaning</M>
#</I>
#</F>
#</X>
def addtag(list, stag, etag):
if len(list) > 0:
ret = ''
for data in list:
ret = stag + string.strip(data, ' ' ) + etag
return ret
else :
return ''
def addExtend(extend):
return addtag(extend, ' <e> ' , ' </e> ' )
def addInfo(info, index):
if len(info) > 0:
ret = ''
for i in info[index * 5:(index + 1) * 5]:
if i.category == '' and i.meaning == '' :
break
ret += ' <i> '
if i.category != '' :
ret += ' <c> ' + string.strip(i.category, ' ' ) + ' </c> '
if i.meaning != '' :
ret += ' <m> ' + string.strip(i.meaning, ' ' ) + ' </m> '
ret += ' </i> '
return ret
else :
return ''
def addSubField(f, index):
ret = ''
if f.symbol != '' :
ret += ' <s> ' + string.strip(f.symbol, ' ' ) + ' </s> '
if f.link != '' :
ret += ' <l> ' + string.strip(f.link, ' ' ) + ' /l> '
ret += addInfo(f.info, index)
return ret
def addField(field):
index = 0
if len(field) > 0:
ret = ' <f> '
for f in field:
ret += addSubField(f, index)
index += 1
ret += ' </f> '
return ret
else :
return ''
def data2xml(data):
ret = ' <x> ' \
+ ' <d>1</d> ' \
+ addExtend(data.extend) \
+ addField(data.field) \
+ " </x> "
return ret
q个实现了从内部数据到指定xml字串的处?(蛋疼?ld2本来的数据也是xml格式?..但ؓ了展现我'高超'的python功底,自己又定义了一ơ格?..)
dbaccess.py
# !/usr/bin/python
# coding:utf-8
import sqlite3 as sqlite
import re
def table_create(conn):
cursor = conn.cursor()
sql = [
' CREATE TABLE IF NOT EXISTS Word (wordid INTEGER PRIMARY KEY, word TEXT, flag INTEGER) ' ,
' CREATE TABLE IF NOT EXISTS Src (srcid INTEGER PRIMARY KEY, wordid INTEGER, fmt INTEGER, orig INTEGER, content TEXT) ' ,
' CREATE TABLE IF NOT EXISTS Dict (dictid INTEGER PRIMARY KEY, title TEXT) '
]
for s in sql:
cursor.execute(s)
def add_dict(conn, title):
cursor = conn.cursor()
cursor.execute(' INSERT INTO Dict (title) VALUES (\ ' %s\' ) ' % title)
conn.commit()
def add_record(conn, word, record):
cursor = conn.cursor()
# sql.encode('string_scape')
cursor.execute(' INSERT INTO Word (word, flag) VALUES ("%s",1) ' % (word))# 'INSERT INTO Word (word, flag) VALUES (\'%s\',1)' % (word))
record = record.replace(' \" ' , '' )
cursor.execute(' INSERT INTO Src (wordid, fmt, orig, content) VALUES (%d, 3, 1, "%s") ' % (cursor.lastrowid, record))
# conn.commit()
def db_create(dbfile):
return sqlite.connect(dbfile)
def db_close(conn):
conn.commit();
conn.close()
def db_test(conn):
cursor = conn.cursor()
record = ' "1234" '
record.replace(' \" ' , '' )
cursor.execute(' INSERT INTO Word (word, flag) VALUES ("%s", 1) ' % (record))
conn.commit()
# ######################################3
# conn = db_create('../data/lac.db')
# add_dict(conn, 'test')
# db_close(conn)
q个实现了相关的数据库功?包括主要的创?写入{?
# !/usr/bin/python
# coding:utf-8
import string import htmlparser
import data2xml
import dbaccess
def main():# str = 'test = <c><E>1</E><E>2</E>'
file = open(" ../data/output.txt " , " r " )
conn = dbaccess.db_create(" ../data/lac.db3 " )
dbaccess.table_create(conn)
# dbaccess.db_test(conn)
# return
dbaccess.add_dict(conn, ' Vicon English-Chinese(S) Dictionary ' )
i = 0
for line in file:
# print line
data = htmlparser.DictData()
htmlparser.analyseLine(string.rstrip(line, ' \n ' ), data)
# print 'data ===== ', data
# print data2xml.data2xml(data)
dbaccess.add_record(conn, data.word, data2xml.data2xml(data))
dbaccess.db_close(conn)
file.close()
main()
q个是main入口?.. 如何?俺写的Python脚本如何?要是你说,一个月?我连Python都会拼错,现在却可以写出如??的Python脚本来了...你是觉得我很?q是觉得PythonL单呢...
虽然在编写Python脚本的时?到了各U郁闷错?各种坑爹的用?但我q是满喜ƢPython?L使用由那位获得两届IOCCC大奖的家伙创建的Perl的感?/a>爽了很多很多?...
<---- 村֏气的分割U?---->
昨晚l于搞定了这最l的Python脚本,但测试的l果不是h? 生成LAC的sqlite数据需要将q?个小时不?q超q?0MB的数据文件更加让人崩?..不过ȝ来说,l于可以先暂时放下这个数据导入的问题,l箋~写LAC?.. q个月工作上有些变故,也一直难以静心敲?C周也到q阶D了...l于可以放松下了...
]]> LingosHook : WordExport Update http://www.shnenglu.com/codejie/archive/2012/10/23/193750.htmlcodejie codejie Tue, 23 Oct 2012 14:32:00 GMT http://www.shnenglu.com/codejie/archive/2012/10/23/193750.html http://www.shnenglu.com/codejie/comments/193750.html http://www.shnenglu.com/codejie/archive/2012/10/23/193750.html#Feedback 8 http://www.shnenglu.com/codejie/comments/commentRss/193750.html http://www.shnenglu.com/codejie/services/trackbacks/193750.html 上周收到mail,问ؓ何WordExport插g导出的单词都是按照字母排好序?.. q个问题让我开始很奇? 排好序不好吗? 理由很多,例如,便于查找什么的;词典不就如此? 实际人家的想法也很简?-- 如果单词是从一文章中提取?那么按照d的顺序导?不是更加便于记忆? 是啊,q理由太充分?..于是,于是有了这ơ的更新(1.0.1): 1. 支持按照单词字母序和添加顺序导? 如下图所C? 希望q次修改可以满需?如有需??a href="http://www.shnenglu.com/codejie/archive/2010/07/23/108996.html">q里下蝲. 安装的方法很?下蝲 q个修改不复?但要修改界面q是满烦?所?直接在右上角加了个checkbox提供选择,希望各位能看?..实际应该再添加一个分D?叫做"Export Order'什么的,太麻烦了...好吧,我真的很懒的... q几天在搞一个想来蛋?但绝对好玩的试,再过几天showl大家看?看我有多蛋疼..哇哈?.. ]]> LAC : Lingoes-Extractor is powerful http://www.shnenglu.com/codejie/archive/2012/10/16/193392.htmlcodejie codejie Tue, 16 Oct 2012 15:59:00 GMT http://www.shnenglu.com/codejie/archive/2012/10/16/193392.html http://www.shnenglu.com/codejie/comments/193392.html http://www.shnenglu.com/codejie/archive/2012/10/16/193392.html#Feedback 5 http://www.shnenglu.com/codejie/comments/commentRss/193392.html http://www.shnenglu.com/codejie/services/trackbacks/193392.html 又仔l分解了?a >Lingoes-Extractor的代?发现昨晚 弄错?..人家不是没有做到'l致'破解,人家只是'好心'所有tag都strip掉了...下次是破解出的原始数?abut = <C><E>abuts|abutted|abutting</E><F><H><M>a·but || ə'bʌt</M></H><I><N><U>v.</U> L; 紧靠; 毗连</N></I></F></C>
LD2文g中是通过自定义Tag来标C的,cMHTML格式,哇哈?..q个,q个是咱的强?咱有TinyHtmlParser 在手,分?隔离什么的,不麻烦h家了... LAC的Native Dictionary的有希望?..为减开发时?WOW中我?7U啊...)计划qLingoes默认的Vicon词典作ؓLAC词典的数据源? ]]> LAC: Is that what you want? http://www.shnenglu.com/codejie/archive/2012/09/28/192328.htmlcodejie codejie Fri, 28 Sep 2012 15:43:00 GMT http://www.shnenglu.com/codejie/archive/2012/09/28/192328.html http://www.shnenglu.com/codejie/comments/192328.html http://www.shnenglu.com/codejie/archive/2012/09/28/192328.html#Feedback 0 http://www.shnenglu.com/codejie/comments/commentRss/192328.html http://www.shnenglu.com/codejie/services/trackbacks/192328.html
啥也不说,先看张图?.
如何?看出什?可疑'?字符?了吗?嘿嘿...q个是不是你惌? 今天剧透下,q个功能是LAC的一个主要功能了! q个是前面提到?/a> -- Native Dictionary!! Z么现在才提vq个?因ؓ今晚才搞定SlidingDrawer?..早想好了,怕做不出?没敢讲啊...咋样?有啥x,赶紧说啊... LAC的下载量现在已经?00?q速度比当qLingosHook刚发布时那是快了100倍啊,100?..哇哈?..(?AD什么的,都是云,׃天就不说q个?..) <---- 吐槽的分隔线 ----> 十一C,要休息几天了...当然不是LWOW?是去LP家而已...所以要好几天不处理邮g,抱歉?.. (q才是吐? 昨天一下午,直接把近两个月的'话务?都用完了...晚上头昏脑胀,无心敲字...所以啊,误LAC跟LingosHook一?Ҏ慢慢敲啊...半夜一个hgoogle来goole?真的慢的... ]]> LAC : English Version to import data http://www.shnenglu.com/codejie/archive/2012/08/30/188836.htmlcodejie codejie Thu, 30 Aug 2012 14:41:00 GMT http://www.shnenglu.com/codejie/archive/2012/08/30/188836.html http://www.shnenglu.com/codejie/comments/188836.html http://www.shnenglu.com/codejie/archive/2012/08/30/188836.html#Feedback 0 http://www.shnenglu.com/codejie/comments/commentRss/188836.html http://www.shnenglu.com/codejie/services/trackbacks/188836.html
׃LAC一直同时支持中文和英文?q个跟LingosHook一?要吐槽E文版译,随便...反正׃用E文的...),所以在LAC实现q程导入?也是有相应的英文面?如下图所C?
LingosHook Android Client Release 1.1.x却忘记支持这些E文网了...所以今天乘着在家看宝?搞定了这?..以ؓ要再写一套跟支持中文一L函数?l果发现一个好Ҏ,单了许多,单到一个函C没有d...
@Override
public Response serve(String uri, String method, Properties header, Properties parms, Properties files) {
displayDebugInfo(uri, method, header, parms, files);
if (uri.length() > 0 && uri.startsWith("/")) {
uri = uri.substring(1);
}
try {
if (method.equals("GET")) {
if (uri.equals(""))
{
uri = "index.html";
}
if (uri.equals("index.html") || uri.equals("index_eng.html")) {
return requestRoot(uri, method, header, parms, files);
}
}
else if (method.equals("POST")) {
if (uri.equals("import_file.html") || uri.equals("import_file_eng.html")) {
return requestImportFile(uri, method, header, parms, files);
}
else if (uri.equals("import_file_done.html") || uri.equals("import_file_done_eng.html")) {
return requestImportFileDone(uri, method, header, parms, files);
}
else if (uri.equals("input_data.html") || uri.equals("input_data_eng.html")) {
return requestInputData(uri, method, header, parms, files);
}
else if (uri.equals("input_data_done.html") || uri.equals("input_data_done_eng.html")) {
return requestInputDataDone(uri, method, header, parms, files);
}
}
} catch (IOException ex) {
return badRequest();
}
return unsupportedRequest(uri, method, header, parms, files);
}
x真的要用E文的应该不多(我还是怕这些E文页面大家也看不明白...),所以就不更C,留到下个版本一起release?.. ]]> LAC: Release 1.1.1 http://www.shnenglu.com/codejie/archive/2012/08/30/188681.htmlcodejie codejie Wed, 29 Aug 2012 16:57:00 GMT http://www.shnenglu.com/codejie/archive/2012/08/30/188681.html http://www.shnenglu.com/codejie/comments/188681.html http://www.shnenglu.com/codejie/archive/2012/08/30/188681.html#Feedback 10 http://www.shnenglu.com/codejie/comments/commentRss/188681.html http://www.shnenglu.com/codejie/services/trackbacks/188681.html 晚上写LAC在线文档 的时?发现两个低的Bugs,赶紧修改?. ?a href="http://www.shnenglu.com/codejie/archive/2010/07/23/108996.html">下蝲量上?几乎没有影响,q好... 所以说,用的人少,也是有好处的,臛_被骂的少,哇哈?.. ?用的人少,AD也就?银子哪里来啊...5555...Z俺的银子,请各位多多点击AD?..不点ȝ?你打开LAC,然后放哪里也好?..(无M..) ]]> LAC:LingosHook Android Client Online Help http://www.shnenglu.com/codejie/archive/2012/08/30/164888.htmlcodejie codejie Wed, 29 Aug 2012 16:21:00 GMT http://www.shnenglu.com/codejie/archive/2012/08/30/164888.html http://www.shnenglu.com/codejie/comments/164888.html http://www.shnenglu.com/codejie/archive/2012/08/30/164888.html#Feedback 15 http://www.shnenglu.com/codejie/comments/commentRss/164888.html http://www.shnenglu.com/codejie/services/trackbacks/164888.html
1. 应用说明
LingosHook Android Client (LingosHook Android Client)是LingosHook在Androidpȝ下的Client应用Q其主要用于方便大家随时‘记忆’LingosHook中的单词的需求。(当然目前LAC只能限于Andoridpȝ了,IOS嘛,可能未来要用LIS吧。。。)
LAC使用
内部一套公式来强化 ’单词‘的记忆。其公式的主要参数是对单词的’熟悉?#8216;Q简单地解释是Q越熟悉的单词,需要记忆的ơ数少Q反之陌生的单词Q应用将频繁昄?/div>
q里每日使用LAC应用一?像WOW里面做个日常,是吧...).
2. 下蝲安装
LACLd下链接下载;安装请参考Android下应用安装方法?/div>
3. 数据准备
LAC的数据可以通过下面多种Ҏ建立和获得:
a. LAC作ؓLingosHook的Client应用Q其数据可以通过LingosHook提供的Data Export插g导出所需数据Q具体请参见Q?a href="http://www.shnenglu.com/codejie/archive/2012/05/30/176762.html">http://www.shnenglu.com/codejie/archive/2012/05/30/176762.html.此方法应为LAC主要的数据来源方式;
b. 直接下蝲提供的实例数据文Ӟ链接如下:
i.
CET-4
ii.
CET-6
iii.
CET-4 & CET-6
iv.
Example Database
Note: CET原始数据来自|上,haolly提供的徏?唯一能确认作者的是最后的{--"z楼情缘",希望我没?侉|'什么的...
我ƈ没有验证数据的正?只是发现CET-4原始数据中没?D'开头的单词,奇怪噢..
c.~写数据集文?br /> 参考下面XML格式说明,~写自定义数据集;
<? xml version='1.0' encoding='UTF-8' standalone='yes' ?> < LingosHook Android Client > < Version > 1.0
</ Version > < DefaultDict > {实词典标题}
</ DefaultDict > < WordList > < Item > <!-- 一个或多个, 每个单词数据L|在一个ItemD中 --> < Dict > {词典标题,可选项}
</ Dict > < Word > {单词}
</ Word > < Symbol > {x,可选项}
</ Symbol > < DataList > < Item > <!-- 单词解释数据,一个或多个 --> < Category > {词类,可选项}
</ Category > < Meaning > {单词解释}
</ Meaning > </ Item > </ DataList > </ Item > </ WordList > </ LingosHook Android Client > q里有段例子
,请参?/a>; d.输入单一数据 可以通过LAC提供的本地和q程两种方式,直接输入数据;具体L'数据导入'部分说明.4. 数据导入
数据导入操作如下Q?/div>
在LACȝ面中Q点?#8216;菜单’按钮Q弹出如下菜单项Q?/div>
选择点击‘导入’,昄如下菜单选项Q?br />
a. 输入单一数据方式
点击'输入单一数据'菜单,昄如下界面;
如图所C?输入数据的相兛_D?(Optional表示此字Dؓ可选项,可以不输?,点击d,卛_单条数据加入到LAC?
b. 本地文g扚w导入方式
点击'导入本地文g'菜单,昄如下菜单;LAC支持.db3?xml格式的数据文?直接填写文g路径和名U即?应用会自动识别的.
输入数据文g所在的目录和文件名Uͼ点击‘导入’按钮卛_。如下是导入q程界面昄。导入过E结束时Q?#8216;导入’按钮变?#8216;完成’Q点击返回主界面?/div>
界面中的‘覆盖‘选项用于军_当前要导入的数据是否替换原有数据Q如果选择’覆盖‘Q则是将应用原有数据删除Q重新导入数据,q|数据的应用数据Q。。。)Q反之,只是导入数据追加到应用中,q不影响原有数据的应用数据?/div>
c. q程文g/数据导入方式 点击'导入q程文g'菜单?界面昄如下: 此时,不要关闭当前界面 ,在同|段的电脑上,打开览?q输入界面中昄的URL,比如,'http://192.168.1.100:8102';览器中显C如下页? 点击'ImportFile'按钮,q按照说明选择当前电脑上要导入的数据文?应用同时支持.db3?xml格式的数? 点击'上传q导?按钮,览器页面{换如? 此时,可以在手Z查看具体的导入结?如下图所C? 如果在首面中点?InputData'按钮,可以通过览器直接输入数?如下图所C? 然后,可在手机上的LAC中查看结? (发现两个bugs...)
4. 使用说明
a. 记忆功能部分
LAC安装q导入数据后Q点M界面Q将出现如下界面Q?br />
其提C显C的是今日(本次Q需要记忆的单词数量Q包括需要重复记忆的单词和新的单词,q两个数字随着每天的记忆情况而变化,但其最大值是可以配置Q请参考后?#8216;参数配置’部分?/div>
点击当前界面Q进?#8216;记忆’部分Q如下所C:
界面昄单词的同Ӟ也将自动朗读此单词(此项可以配置Q。单词下面有四个‘熟悉?#8217;选项Q请Ҏ自己对单词的印象Q相应选择单词 下面四个‘熟悉?#8217;选项。此时若点击单词Q可再次朗读单词?/div>
单词右侧上方昄了当前还剩下多少单词需要记忆,不同前缀代表不同cdQN是新单词QO是就单词QM?#8216;再记’单词?/div>
单词下面Q或右侧Q这个根据要看界面方向有所不同Q是输入板,用于喜欢边背边写同学涂鸦用的?/div>
当点MQ一’熟悉?#8216;选项后,应用显C当前单词的解释Q此可以配|)Q如下图Q?/div>
界面下面有个‘再记一?#8217;的按钮,用于标识当前单词在最后还需要再Cơ,此选择会媄响单词熟悉度判定。点L钮其它地方将当返回前一个页面,q显CZ一个单词?/div>
b. 查看功能部分
在LACȝ面中点击菜单按钮Qƈ选择‘数据列表’,显C类似如下界面:
界面中列Z说有的单词信息,上面三列为总量Q下面则为按?#8216;旉’q行分类Q分cMQ上面的E大数字代表单词下次昄的间隔天敎ͼ下面数字标识当前旉下的单词数量?br />
从界面中可以看出每日要昄的单词数量;当间隔天Cؓ负值时Q表C单词应该在现在旉之前记忆。LAC对于旉间隔于当天Q即gؓ0Q的单词都将在当天显C,当然昄数量受配|控制。如果想一天完成所?#8216;?#8217;单词Q只需多次打开LAC卛_?/div>
此时点击L标签Q包括上面的‘全部单词’?#8216;新单?#8217;?#8216;旧单?#8217;Q以及下面的分类标签Q都显C相对应的单词列表,如下图所C?br />
此时,点击L单词,显C单词解?如下图所C?
如果'长时?点击单词,可以删除当前单词;
5. 参数配置
在LACȝ面中点击菜单按钮Q选择’讄‘,界面切换臛_下配|界面:
在配|界面中Q可以对如下目q行定制Q?/div>
a. 新单词数量:配置每次新单词最多显CZ敎ͼ
b. 旧单词数量:配置每次旧单词最多显CZ敎ͼ
c. 自动加蝲标记?#8217;再记‘的单词:如果开启此,则当每次记忆单词l束Ӟ应用自己加蝲在过E中被标Cؓ’再记‘的单词;反之Q应用会在结束时提C是否再ơ加载;
d. 自动加蝲语音Q?开启此,应用会在单词昄Ӟ自动发音Q?/div>
e. 自动h输入板:开启此,应用自动在指定间隔内刷新输入板Q反之只有在单词切换时才hQ?/div>
f. 输入板刷新间隔:单位U;
g. 输入板笔Ԍ讄输入板输入颜Ԍ
h. 输入板笔宽:讄输入板输入宽度;
i. 开启Web面点击响应: 开启此?在单词解释界面中,点击界面M地方自动切换到下一单词;反之,界面中将昄'下一?按钮,只有点击此按钮时,才会切换;
6. Q & A
Q: 输入板输入无效?
A: 重新在设|菜单中配置下各参数Q?/div>
Q: 两个下蝲包有何不同?
A: 两个下蝲包只是内部用的q告商家不同Q功能完成相同;Q另Q辛苦有I没I就点下q告Q感谢支持。。。。)
Q: 没有语音?
A: Androidpȝ中的语音pȝ使用的也叫TTSQ跟windows上类|原生的应该用的是picoTTS?/div>
如果LAC初始TTSp|Q会昄一条提CZ息,如下所C:
希望你看不到q个提示信息.我的G7被刷后就没法启动TTS了,一直也没搞定,所以如果有问题Q只能辛苦大家自己google下吧?/div>
]]>
LAC: Release 1.1.0 http://www.shnenglu.com/codejie/archive/2012/08/28/188560.htmlcodejie codejie Tue, 28 Aug 2012 15:17:00 GMT http://www.shnenglu.com/codejie/archive/2012/08/28/188560.html http://www.shnenglu.com/codejie/comments/188560.html http://www.shnenglu.com/codejie/archive/2012/08/28/188560.html#Feedback 5 http://www.shnenglu.com/codejie/comments/commentRss/188560.html http://www.shnenglu.com/codejie/services/trackbacks/188560.html
LingosHook Android Client 1.1.0l于写好?主要更新如下:,本来打算今晚写好在线文档??.怕是完成不了?..所以决定还是先Release,文档明天再说!
1. 支持XML格式导入;
2. 支持单个数据导入;
3. 支持q程(HTTP)方式导入;
4. 增加'Html界面点击'配置.
在线文档也更C,q里查看; 有没有感觉新的导入和输入方式很强大啊..支持HTTP?!! 哇哈?..
最?q是到这里下?/a>!
短说下更?点击"导入"菜单,然后自己去试试先?..
原来的在U文档在q里 ,新支持的XML文g格式请先参考如下例子吧...抱歉?.今天有点?真的q箋写了好多天了...
新支持的XML文g格式的例子如?请参?
<? xml version='1.0' encoding='UTF-8' standalone='yes' ?>
< LingosHook Android Client >
< Version > 1.0
</ Version >
< DefaultDict > test
</ DefaultDict >
< WordList >
< Item >
< Dict > dict
</ Dict >
< Word > word
</ Word >
< Symbol > wc'd
</ Symbol >
< DataList >
< Item >
< Category > n.
</ Category >
< Meaning > meaning
</ Meaning >
</ Item >
< Item >
< Category > v.
</ Category >
< Meaning > meaning2
</ Meaning >
</ Item >
</ DataList >
</ Item >
< Item >
< Dict > dict2
</ Dict >
< Word > word2
</ Word >
< Symbol > wc'd2
</ Symbol >
< DataList >
< Item >
< Category > n.
</ Category >
< Meaning > 中文?span style="color: #0000FF; "></
Meaning >
</ Item >
< Item >
< Category > v.
</ Category >
< Meaning > 试?span style="color: #0000FF; "></
Meaning >
</ Item >
</ DataList >
</ Item >
</ WordList >
</ LingosHook Android Client >
有兴的可以下面看看俺怎么用JAVA解析的xml?调试文g,不是最l的)importdata.java private void importXml(final String file, boolean overwrite) {// File ifile = new File(file); // if(!ifile.exists()) { // return; // } try { // FileInputStream is = new FileInputStream(ifile); InputStream is = this .getAssets().open(file); XmlPullParserFactory factory = XmlPullParserFactory.newInstance(); XmlPullParser xp = factory.newPullParser(); xp.setInput(is, "UTF-8"); DataFormat.Data data = new DataFormat.Data(); String defDict = "Default Dictionary"; int type = xp.getEventType(); while (type != XmlPullParser.END_DOCUMENT) { if (type == XmlPullParser.START_TAG) { if (xp.getName().equals("DefaultDict")) { defDict = xp.getText(); } else if (xp.getName().equals("WordList")) { type = xp.nextTag(); if (type == XmlPullParser.START_TAG) { while (xp.getName().equals("Item")) { getItem(xp, data); checkData(data, defDict);// type = xp.next(); type = xp.nextTag(); type = xp.nextTag(); } } } } type = xp.next(); } is.close(); } catch (XmlPullParserException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } private int checkData(Data data, String defDict) { return 0; } private int getItem(XmlPullParser xp, DataFormat.Data data) { try { // Dict int type = xp.nextTag(); if (xp.getName().equals("Dict")) { type = xp.next(); data.dict = xp.getText(); type = xp.next(); } // Word type = xp.nextTag(); if (xp.getName().equals("Word")) { type = xp.next(); data.word = xp.getText(); type = xp.next(); } else { return -1; } // Symbol type = xp.nextTag(); if (xp.getName().equals("Symbol")) { type = xp.next(); data.symbol = xp.getText(); type = xp.next(); } // DataList type = xp.nextTag(); if (xp.getName().equals("DataList")) { type = xp.nextTag(); if (type == XmlPullParser.START_TAG) { while (xp.getName().equals("Item")) { getWordData(xp, data); checkWordData(data); // type = xp.next(); type = xp.nextTag(); type = xp.nextTag(); } } } else { return -1; } } catch (XmlPullParserException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return 0; } private int checkWordData(Data data) { return 0; } private int getWordData(XmlPullParser xp, Data data) { try { // Category int type = xp.nextTag(); if (xp.getName().equals("Category")) { type = xp.next(); data.category.add(xp.getText()); type = xp.next(); } else { return -1; } // Meaning type = xp.nextTag(); if (xp.getName().equals("Meaning")) { type = xp.next(); data.meaning.add(xp.getText()); type = xp.next(); } else { return -1; } } catch (XmlPullParserException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return 0; } <---- 长舒一口气的分割线 ----> 文档ȝ写完?可以L下了..l果,发现两个bug...?q两天就fix,1.1.1马上׃得不更新?.. ]]> LAC: 冲动是魔?/title> http://www.shnenglu.com/codejie/archive/2012/08/18/187603.htmlcodejie codejie Sat, 18 Aug 2012 08:40:00 GMT http://www.shnenglu.com/codejie/archive/2012/08/18/187603.html http://www.shnenglu.com/codejie/comments/187603.html http://www.shnenglu.com/codejie/archive/2012/08/18/187603.html#Feedback 6 http://www.shnenglu.com/codejie/comments/commentRss/187603.html http://www.shnenglu.com/codejie/services/trackbacks/187603.html 昨晚最l搞定了LAC的新的导入DB3文g的方式,q算利Q于是今天l研IXML文g。。。突Ӟ那么突然的冲动Q-LAC不能只是个单U的LingosHook的Android ClientQ它应该有它自己的特性!于是有了。。?br /> 上图中,Bold部分是当前LAC已经实现的功能(’Remote Import'部分写好了)Q其它就是冲动计划新增的功能了,如何。。?br /> 新功能媄响最大的本地数据库,整个表结构应该都要改了。。。简单算,不日夜敲个两月,是完成不了的了。。。冲动果然是鬼Q?br /> <---- 喜滋滋的分割U?----> LingosHook最q的版本1.6.618C天正好发布两个月Q也许是两个月零一天。。。)了,下蝲量达?500Q了啊!Q算可是每小时至就有一ơ下载啊Q这是什么样量啊。。。哈哈哈。。。心满意_。。?br /> 不信点这里自q Q俺没有吹牛哦,Z证没做广告,Z证俺自己没有q哦。。。哇哈哈。。?LAC的就不要看了Q惨不忍睹啊。。。) ]]> LACQ?.0.0 Release http://www.shnenglu.com/codejie/archive/2012/08/02/186053.htmlcodejie codejie Thu, 02 Aug 2012 09:31:00 GMT http://www.shnenglu.com/codejie/archive/2012/08/02/186053.html http://www.shnenglu.com/codejie/comments/186053.html http://www.shnenglu.com/codejie/archive/2012/08/02/186053.html#Feedback 16 http://www.shnenglu.com/codejie/comments/commentRss/186053.html http://www.shnenglu.com/codejie/services/trackbacks/186053.html LAC l于可以见h了。。。不|嗦Q这ơ跟LingosHook不同Q咱?a href="http://www.shnenglu.com/codejie/archive/2012/02/03/164888.html">详细文档Q想直接下蝲的,看这?/a>Q?br /> ]]> LAC : '记忆'法 http://www.shnenglu.com/codejie/archive/2012/07/26/185254.htmlcodejie codejie Thu, 26 Jul 2012 14:55:00 GMT http://www.shnenglu.com/codejie/archive/2012/07/26/185254.html http://www.shnenglu.com/codejie/comments/185254.html http://www.shnenglu.com/codejie/archive/2012/07/26/185254.html#Feedback 5 http://www.shnenglu.com/codejie/comments/commentRss/185254.html http://www.shnenglu.com/codejie/services/trackbacks/185254.html
前天晚上查LAC代码,总觉得其使用?记忆'法有问?调试很久,火v,重新实现了一?..
所?记忆'法,最著名的应该是那个什?艑֮斯记忆曲线'?可惜咱数学不?没看?只好自己弄个单的?..
'记忆'法由四个参数组合而成,很简?-- 一?strong>旉间隔参数乘以?strong>前次分数,本次分数 以及l果判定 定的三l坐?卛_获得下次旉 .
三维坐标pd?
float rateTable[4][4] = {
{ 1.75f, 0.80f, 0.45f, 0.17f },
{ 1.50f, 1.25f, 0.55f, 0.20f },
{ 1.00f, 0.80f, 0.45f, 0.20f },
{ 0.80f, 0.50f, 0.30f, 0.17f }
};
int judgeTable[2][4] = {
{ 0, 1, 1, 2 },
{ 2, 2, 3, 3 }
};
计算Ҏ化如?check = judgeTable[judge][preScore]; next = ((last != 0) ? (updated - last) : 7) * rateTable[curScore][check] + updated + 1;
׃不知道这个算法好不好,所有系数完全自己推倒杜撰的(该不该弄个专利去?..),Z表达自己?严}U学态度'的敬?做了如下试,L各位报表.. 1. 假定某个单词从第一ơ就选择'认识',且判定ؓ'正确'(意思是自己判定'认识'此单词的判断是正的),那么此单词连l九ơ出现的旉以及两次间时间间隔趋势如下图所C? (X轴ؓ单词出现是时?Y轴ؓ两次出现旉的间? 从图表中可以看出,一?熟悉'的单?出现的间隔会来长.q复合基本逻辑--熟悉的单词不用经常记? 2. 相反,假定某个单词起始?熟悉',但在其后选择?选择'没概?,且判定ؓ'错误'(意思是自己实Ҏ单词'没概?,)(q里跟前面的解释一L解时,有点?..),那么此单词连l九ơ出现的 旉间隔势如下: ׃囑֏?随着选择'没概?的次数增?单词出现的间隔不断变?直至?. 3. 下面势图显CZ当一个单词每ơ都选择'熟悉',但判定依ơؓ'正确'?错误',q箋九次出现后的旉间隔变化: 4. 最后一个则是单词每ơ选择'没概?但判定依ơؓ'正确'?错误'的时间间隔趋势图: '熟悉?一共有4U?且有两个参数,加上'判定'参数?U?三个参数l合h的系数关pd是前面的两个数组,我是没敢试每种l合的趋?挑了上面四个最单的可能,其他的大家有兴趣自己看吧...Ƣ迎指点,Ƣ迎拍砖,但不许打?.. <---- 判定意思好混ؕ的分割线 ----> 刚才H然惌v一个好Ҏ,可以屏蔽'判定'概念,q就L... ]]> LAC : Example Database is ready http://www.shnenglu.com/codejie/archive/2012/07/20/184255.htmlcodejie codejie Thu, 19 Jul 2012 16:10:00 GMT http://www.shnenglu.com/codejie/archive/2012/07/20/184255.html http://www.shnenglu.com/codejie/comments/184255.html http://www.shnenglu.com/codejie/archive/2012/07/20/184255.html#Feedback 3 http://www.shnenglu.com/codejie/comments/commentRss/184255.html http://www.shnenglu.com/codejie/services/trackbacks/184255.html LAC 所需的database实例l于搞好?.. Zq个实例,q特意用C++写了个分析程?-- Txt2Html.自动解析加上人眼?q是搞定?整整5个晚上啊...才几天没用C++?竟然忘记mutableq个关键字了... 如果不再被我出新bug,或者想h功能,LAC再改动一些字W串什么的,应该可以release? 先上?剧透下,也展CZ下今晚database的成? 喜欢?..q只是LAC?冰山一??..哇哈?.. ]]> LingosHook : 值得U念的一?/title> http://www.shnenglu.com/codejie/archive/2012/07/16/183808.htmlcodejie codejie Mon, 16 Jul 2012 15:51:00 GMT http://www.shnenglu.com/codejie/archive/2012/07/16/183808.html http://www.shnenglu.com/codejie/comments/183808.html http://www.shnenglu.com/codejie/archive/2012/07/16/183808.html#Feedback 6 http://www.shnenglu.com/codejie/comments/commentRss/183808.html http://www.shnenglu.com/codejie/services/trackbacks/183808.html
对于LingosHook来说,2012q??3日这天很值得U念 ---- LingosHook到此?总计收到的捐赠数过?strong>RMB100?!!
在此再次感谢所有购买捐赠插件的捐赠者们 ! 谢谢,谢谢...谢谢你们对LingosHook的用和支持! 同时也感谢所有的使用者们! 是你们所有h的每一?a >下蝲, 刺激着LingosHook的更?
哈哈,哈哈...真的很开?
从第一个版?.5.100的发布时?010q??日算? LingosHook一共发布了30个版本了... ?011q??7?haolly热心购买W一ơ插件开始算? 正好16个月q去?.. 如果从有x开始算? LingosHook应该已经存在三年?.. .... .... .... 与LingosHook一L每个喜悦的夜晚或是郁L夜晚,也就q么q去?..本来惛_好感慨一下的冲动,也忽然^静了...啥也不说?感谢大家? 下面是LingosHook捐赠者插件中?彩蛋',敬请ƣ赏! <---- 剧透的分割U?---->
争取q两周能发布新版的LAC! q段日子一直在忙这?工作上的新项目很?也就一直敲到现?.. 实际LAC三周前就写好?目前在做一个计划同步发布的单词数据? 创徏q个数据库的目的?一来可以做试实例使用,二来对于不用LingosHook的h来说,也可以直接单独用LAC? q也意味着,LAC可以单独作ؓ一?记忆'应用存在?.. LAC是什?看这?/a>...用Android兄弟姐妹们马上可以尝鲜了...使用IOS的各位吗..抱歉?俺没有珍惜有MacBook Pro的日?..现在只有{俺存够了银子再说吧...
]]> LingosHook : Release 1.6.061 http://www.shnenglu.com/codejie/archive/2012/06/01/177047.htmlcodejie codejie Fri, 01 Jun 2012 07:21:00 GMT http://www.shnenglu.com/codejie/archive/2012/06/01/177047.html http://www.shnenglu.com/codejie/comments/177047.html http://www.shnenglu.com/codejie/archive/2012/06/01/177047.html#Feedback 32 http://www.shnenglu.com/codejie/comments/commentRss/177047.html http://www.shnenglu.com/codejie/services/trackbacks/177047.html LingosHook新版1.6.061l于可以赶上六一发布了。。。六一快乐Q?br /> q个版本中,有如下更斎ͼ 1. 支持Tag下所有单词移动到另外Tag下,具体说明Lq里 Q?br /> 2. 支持HTML数据优化Q?a href="http://www.shnenglu.com/codejie/archive/2012/05/16/174992.html">具体说明Lq里Q?br /> 3. 更新WordExport插gQ?a href="http://www.shnenglu.com/codejie/archive/2012/05/30/176762.html">强力说明在这?/a>Q?br /> 4. 修正‘数据dBug'Qƈ新增DataCleanup插g用于清理无用数据Q?a href="http://www.shnenglu.com/codejie/archive/2012/05/31/176959.html">详情Lq里Q?br /> p些更斎ͼ辛苦各位下蝲了,有Q何问题,请回贴吐槽。。。源码依然在q里 ?br /> q次安装包里面包含如下三个插Ӟ敬请x?br /> 虽然更新条目看着不多Q但q次对TinyHtmlParser做了大量改动Q不然没法搞定HTML优化和Word导出的变态需求,当然了,我也被篏的半M。。?br /> q次更新q导致一个大问题Q-ForDonator插g无法正常使用了。。原因是插g接口改动。因此,各位DonorQ不好意思啊Q这ơ要辛苦你们更新插g了。。。我会一一发maill大家的Q有M问题h信啊。。?br /> <---- h的分割线 ----> 能这么快ReleaseQ得益与两个可以h的原因: 一是,HTML优化配置对话框内Ҏ译Q因个对话框是跟WordExport插gq的,而插件从来都是不译的(理直气壮啊。。。)Q所以,省了很多旉。。?br /> 二是QForDonator插g接口问题Q比惌的简单,改了个接口版本号OK了,所以。。。昨晚都可以有时间GAME一把了。。?br /> <---- 休假的分割线----> q个版本之后Q照例要休息一D|_主要是新的工作下周应该开始了Q没法连l更CQ赶着发布新版本也有这个原因的Q。后面LingosHook的更新应该会們’背单?#8216;功能了,那也是个大头啊。。?img src ="http://www.shnenglu.com/codejie/aggbug/177047.html" width = "1" height = "1" /> ]]> LingosHook : Data Clean-up Plugins http://www.shnenglu.com/codejie/archive/2012/05/31/176959.htmlcodejie codejie Thu, 31 May 2012 10:20:00 GMT http://www.shnenglu.com/codejie/archive/2012/05/31/176959.html http://www.shnenglu.com/codejie/comments/176959.html http://www.shnenglu.com/codejie/archive/2012/05/31/176959.html#Feedback 0 http://www.shnenglu.com/codejie/comments/commentRss/176959.html http://www.shnenglu.com/codejie/services/trackbacks/176959.html
真正的程序员Q敢于面对自qBUGsQ!
q话说的多么?#8217;正气凛然‘啊。。。实际上应该?#8217;自作孽,不可z?#8216;啊。。。找了一晚,l于发现昨天提到 ?#8217;删除单词Bug‘实际应该?#8217;d单词Bug'Q当d新单词,q开启词典分析选项ӞLingosHook会过滤掉已经存在的单词,以防止重复记录;设计的多好,但问题是Q如果单词重复,相应的HTML数据也不应该保存啊。。。这个忘记写了。。。如下代码:
1 int CDictObject::SaveResult(const std::wstring& html, TResultMap& result)
2 {
3 if (FilterResult(result) != 0)
4 return -1;
5 if (result.size() == 0 )
6 return 0 ;
7 int srcid = -1;
8 if (SaveSrcData(html, srcid) != 0)
9 return -1;
10 if (SaveResult(srcid, result) != 0)
11 {
12 RemoveSrcData(srcid);
13 return -1;
14 }
15 return 0;
16 }
是的Q红色部分忘C。。?br /> 目前看,q个Bug在很早就应该存在了,大约都可以追溯到1.2.001Q当同一个单词被多次查询ӞBug会导致LingosHook存入一条完全没用的HTML数据到SrcDataTable表中。唉QLingosHook长期以来一直在致力于减数据的存储Q没惌一个Bug。。。唉Q丢怺。。?br /> 做错事,是要付出代h的!Z修正BugD的错误存储,昨晚军_为此专门写个插gQ-Data Clean-upQ?br /> Data Clean-up插g能够备䆾和自动清理无用数据。整?个小Ӟ每分钟不于敲打120个字母的速度下,l于搞定了。。。用方法如下: 1. 备䆾Qؓ了防止可能的错误Q徏议备份原有数据文Ӟ使用插gQ点?#8216;Backup’卛_。插件自动备份LingosHook.db3文gC当前日期为后~的新的db3文g中,如下图所C?br /> 2. 清理Q插件自动查扑ƈ清理无用数据Q点?#8216;Clean-up'卛_Q如下图所C: 看看Q超q一半以上的无用记录Q多么可怕的Bug啊。。。从理论上来_无用记录范围会在0到无I大间。。。(有本书叫做《从零到无穷大》很好看。。。) 到此QBug修正q实现清除方法,可以瞑目了。。。插仉下个LingosHook版本一起发布,不好意思了。。?br /> H然发现Q今晚要是能处理完FonDonator插gQ再加班加点试下,也许没准q真能赶上过个六一呢。。。哇哈哈。。?br /> ]]> LingosHook : Powerful New WordExport Plugin is DONE http://www.shnenglu.com/codejie/archive/2012/05/30/176762.htmlcodejie codejie Wed, 30 May 2012 07:59:00 GMT http://www.shnenglu.com/codejie/archive/2012/05/30/176762.html http://www.shnenglu.com/codejie/comments/176762.html http://www.shnenglu.com/codejie/archive/2012/05/30/176762.html#Feedback 8 http://www.shnenglu.com/codejie/comments/commentRss/176762.html http://www.shnenglu.com/codejie/services/trackbacks/176762.html 敲了两周Q新版的WordExport插gl于搞定了!支持三种qoQ五U导出方式,强大到前所未有啊~~(自我感觉很好!) 看图了! 如何Q界面跟前面 提到的不一样了Q将HTML导出l分ZU了~(蛋疼不。。) 从界面中可以看出Q插件支持单词、Tag和词怸U导滤设|?br /> 1. 单词qoQ全部或者符合指定前后缀条g的单词; 2. TagqoQ全部或指定Tag下的单词Q?br /> 3. 词典qoQ全部或指定词典下的单词Q这个说明下Q由于大家用的词典是不一LQLingosHook是无法获取全部词典数据的。当需要设|此条gӞ请先在Lingoes中查询指定词典的ID,再拷贝到此处卛_。可参看如下图获取词典ID信息?br /> 现在具体说下五种不同导出方式?br /> 1. 带烦引,单HTML格式导出Q如下图所C,左侧为单词列表,右侧释数据,当点d词时Q右侧窗口会自动跛_指定单词解释处; 输出目录中,LH_Export.htmlZ文gQi.html是烦引文Ӟ是单词列表文gQdata.html是解释数据文件?br /> 2. 带烦引,多HTML格式导出Q下图中Q左侧ؓ单词索引列表Q右侧ؓ解释数据Q点d词是Q右侧窗户会自动昄单词解释Q?br /> 与前者不同的是,单词解释不是攄在同一文g中,而是以单词ؓ前缀Q?.html'为缀的文件中?当多个单词用同一解释是,解释文g只有一份,比如set和settingQ都指向set.html文g。输出类似如下图片显C: d.html文g依然存在Q此时即为LingosHook的主|件?br /> 3. 无烦引,单HTML格式导出Q所有数据都输出到同一文gLH_Export.html中,包括单词和解释;如下图所C,单词列D在解释前面,单词间由较粗分割U分R?br /> 4. LAC格式导出Q这个不多说QLACQLingosHook Android ClientQ相兛_?a href="http://www.shnenglu.com/codejie/archive/2012/02/01/164729.html">Lq里Q由于WordExport插g直接能够导出LAC格式数据QClientDataExport插g没用了Q不再更C?br /> 5. 文本格式导出QTXT格式是ؓ了保留WordExport插g的最初功能,导出没变化,使用可以参看原来的脓?/a>。选择分隔W,L?#8216;Separator’按钮Q会弹出如下对话框供选择使用?br /> 注: 1. 导出需要指定导\径(不检查\径合法性和文g是否存在Q,导出的主文g使用同一前缀QLH_Export Q- LH_Export.html/LH_Export.db3/LH_Export.txt; 2. 按钮‘Optimizer’是用于导出时化HTML优化配置的, 具体说明请参看这?/a>?br /> p么多Q敲L了。。?br /> <---- 疲惫的分割线 ----> 本来计划q个六一发布新版本的Q那?a href="http://www.shnenglu.com/codejie/archive/2012/02/14/165581.html">许诺?#8216;支持d自定义解?#8217; q次真的搞不定了Q但是攑ּq个Q怕也来不及了。。。主要还有三个问题没解决Q?br /> 1. 界面语言转换Q?br /> 2. 单词删除Bug; 3. 插g接口更新issueQ?br /> Z搞定新的WordExport插g功能Q更CLingosHook的插件接口,本来没啥Q因为就那么几个插gQ还都是随着LingosHook版本一起release的;但后来才发现一个大大的问题Q?a href="http://www.shnenglu.com/codejie/archive/2011/03/15/141425.html">ForDonator插g都是单独分发的啊。。。这ơ更斎ͼ导致所有Donator的这个插件不能正常运行了。。。着急很久,但ؓ了这个强大的WordExportQ看来也只能辛苦各位Donator更新下了。。。不好意思啊。。?br /> 截了张大图,惛_家了解下QLingosHookq来一直在敲啊Ԍ没停q。。。等q个版本E_了,会休息一D|间了。。?br /> ]]> LingosHook : Is this you wanted? http://www.shnenglu.com/codejie/archive/2012/05/24/176018.htmlcodejie codejie Thu, 24 May 2012 07:30:00 GMT http://www.shnenglu.com/codejie/archive/2012/05/24/176018.html http://www.shnenglu.com/codejie/comments/176018.html http://www.shnenglu.com/codejie/archive/2012/05/24/176018.html#Feedback 4 http://www.shnenglu.com/codejie/comments/commentRss/176018.html http://www.shnenglu.com/codejie/services/trackbacks/176018.html 所有的数据都集中到一P是不是你惌的呢Q?br /> 我更喜欢IMG也被qo后的样子。。?br /> 新版WordExport插g 正在实现中。。?img src ="http://www.shnenglu.com/codejie/aggbug/176018.html" width = "1" height = "1" /> ]]> LingosHook : New WordExport Plugin http://www.shnenglu.com/codejie/archive/2012/05/21/175615.htmlcodejie codejie Mon, 21 May 2012 09:58:00 GMT http://www.shnenglu.com/codejie/archive/2012/05/21/175615.html http://www.shnenglu.com/codejie/comments/175615.html http://www.shnenglu.com/codejie/archive/2012/05/21/175615.html#Feedback 4 http://www.shnenglu.com/codejie/comments/commentRss/175615.html http://www.shnenglu.com/codejie/services/trackbacks/175615.html 新版的WordExport插g如下Q喜好不。。?br /> ]]>LingosHook : HTML Optimum http://www.shnenglu.com/codejie/archive/2012/05/16/174992.htmlcodejie codejie Wed, 16 May 2012 07:09:00 GMT http://www.shnenglu.com/codejie/archive/2012/05/16/174992.html http://www.shnenglu.com/codejie/comments/174992.html http://www.shnenglu.com/codejie/archive/2012/05/16/174992.html#Feedback 0 http://www.shnenglu.com/codejie/comments/commentRss/174992.html http://www.shnenglu.com/codejie/services/trackbacks/174992.html ‘HTML Optimum’敲完了,功能作用不多Q但代码敲v来还是满累啊。。?br /> q个功能可以指定qo掉词典HTML中对于LingosHook无用的数据,比如链接、事件处理等{;以此可以减少LingosHook的数据存储空_理论上,可以减少15Q到100Q,看怎么配置了,比如Q过滤全部的TagQAttribute和Value。。?br /> 功能最初来?a href="http://www.shnenglu.com/codejie/archive/2012/02/01/164729.html">LAC目中的‘Client Data Export’插gQ本来没那么复杂Q应用指定过滤那么几个TagQAttribute什么的可以了Q但咱就是有‘开攑ց执症’Q-l果非弄个了个可以配|的对话框来Q这样大家可以根据自q喜好来设|想qo的内容了。。。(蛋疼不。。。) 上图先?br /> 1. 复杂的Optimum配置对话?我觉得是LingosHook所有对话框中最好看的一个。。?nbsp;) HTML中的元素基本来说可以分ؓ三类QTagQAttribute和ValueQ注释不提,LingosHook自动qo掉了Q,q个׃多解释了。在对话框中Q将需要过滤(剔除Q元素名U加入到相应的列表中卛_。需要说明的是,元素名称是区分大写的。在LingosHook中,所有的Tag都是大写的,比如要过滤图片,需要添加的是IMG?br /> 左下?#8216;Use Default Configuration’按钮是用于恢复或者用应用缺省配|的Q其qo配置即ؓ当前对话框中的项目,列表如下代码Q?br /> CDocumentOutputObject::AddKey(&m_mapHtmlOptimumKey, CDocumentOutputObject::KT_TAG, wxT("A")); CDocumentOutputObject::AddKey(&m_mapHtmlOptimumKey, CDocumentOutputObject::KT_TAG, wxT("PARAM")); CDocumentOutputObject::AddKey(&m_mapHtmlOptimumKey, CDocumentOutputObject::KT_TAG, wxT("EMBED")); CDocumentOutputObject::AddKey(&m_mapHtmlOptimumKey, CDocumentOutputObject::KT_TAG, wxT("OBJECT")); CDocumentOutputObject::AddKey(&m_mapHtmlOptimumKey, CDocumentOutputObject::KT_ATTRIB, wxT("class")); CDocumentOutputObject::AddKey(&m_mapHtmlOptimumKey, CDocumentOutputObject::KT_ATTRIB, wxT("title")); CDocumentOutputObject::AddKey(&m_mapHtmlOptimumKey, CDocumentOutputObject::KT_ATTRIB, wxT("onclick")); CDocumentOutputObject::AddKey(&m_mapHtmlOptimumKey, CDocumentOutputObject::KT_ATTRIB, wxT("onmouseout")); CDocumentOutputObject::AddKey(&m_mapHtmlOptimumKey, CDocumentOutputObject::KT_ATTRIB, wxT("onmouseup")); CDocumentOutputObject::AddKey(&m_mapHtmlOptimumKey, CDocumentOutputObject::KT_ATTRIB, wxT("onmousedown")); CDocumentOutputObject::AddKey(&m_mapHtmlOptimumKey, CDocumentOutputObject::KT_ATTRIB, wxT("onselectstart"));
此按钮存在的原因是-Q实际不大家自己配置的,因ؓ乱配|有风险DLingosHook无法正常解析数据的。。。现在大家知道有多蛋g?。。。提供配|只是想让大家看看,LingosHook的HTML处理功能有多猛,而这个HTML解析是咱自己写的Q哇哈哈。。。后面我会脓些不同配|下的解析结果对比图Q供大家ƣ赏?br /> 2. Setting面中新增的配置?br /> q个配置目前是缺省开启的Q虽然会D数据入库变慢点,但可以节省不存储空间啊。。?br /> 下面是不同过滤配|下的对比: 1. 无过?Q?nbsp;数据库中HTML数据大小?871字节Q?nbsp; 2. ~省配置QHTML数据大小?162字节Q?br /> 可以发现Q给无过滤情况下Q在昄上是没有区别的; 3. ~省配置加上IMGqo Q?HTML数据大小?221字节Q此配置方式即ؓLAC 数据导出配置Q?br /> 没图片,也还好的吧。。?br /> 4. qo全部Tag和Attribtue Q?HTML数据大小?79字节Q?br /> q种配置Q理Z是提取HTML中的’U文?#8216;Q过E中LingosHook会生一个异常,因ؓ数据不再是HTML格式Q解析时会出错的?br /> HTML Optimum功能是q样的,奇不。。?br /> <----意外发现的分割线----> 分析Lingoes数据Ӟ意外发现实际其应该早有添加生词本的欲望了Q只是不知道Z么一直没有实现。不信,看看下面HTML代码。。?br />< TD >< IMG style ="MARGIN-TOP: 0px; MARGIN-LEFT: 0px" id ="dict_remberword_E1C27E806399D047822B6650194A3D32" onmouseup ="this.style.marginLeft = '-11px'" onmouseover ="this.style.marginLeft = '-11px'" title ="Add the word to notebook" onmouseout ="this.style.marginLeft = '0px'" onmousedown ="this.style.marginLeft = '-11px'" onclick ="window.navigate('app://remberword/E1C27E806399D047822B6650194A3D32-4') ;" border ="0" src ="file:///C:/Program%20Files%20(x86)/Lingoes/Translator2/dict/image/remberword.png" width ="22" height ="11" ></ TD >
我以前怎么没注意呢。。?img src ="http://www.shnenglu.com/codejie/aggbug/174992.html" width = "1" height = "1" /> ]]>
þþþavר |
91Ʒպþò |
þ99Ʒþþþþ9 |
þþƷ18 |
ձvaҹĻþ
|
þþùƷ |
99ȳ˾ƷѾþ |
ƯޱгĻþ |
պһþ |
ƷƷھþø |
þƵһ |
99þ99þþƷѿ |
ŷƷƵһþþþƷ |
þþ91Ʒһ |
þøݾƷԴվ |
þþƷh |
ձѾþþþþþվ |
ҹ888þ |
þӰ |
99þþƷѿһ |
þ99ۿҳ |
þþƷӰѿ |
91Ʒ91þþþþ |
ƬҹƬþ |
ɫۺϾþ
|
69ۺϾþþƷ |
þþþþþAv |
þùƷþþƷ |
Ʒۺþþþþ |
þþþþþþþþ |
ɫۺϾþþþ |
Ļþ |
þٸ۲AVר |
avþþþþòվ |
AVһȾþ
|
Ļþþ |
þѾƷav |
˾þ777777 |
ľþþƷww16
|
þƷһ
|
Ʒʾþþþ999Ұ |