谢谢老大总是把小弟的事情时刻放在心头上!这一回,又耗了老大极多心血最大程度帮了小弟! 要请老大恕罪的是,小弟困于“地震后重建”,首次尝试重装电脑,茫无头绪,无法详测老大的代码。怕时间拖久了还是一样,小弟只好在这里先简单把目前的测试印象汇报一下,请老大过目。 暂时取名—— 〖小词表〗: 即老大为小弟编写的第一个词汇表程序——在阅读英语文章时,碰到一个生词,就在生词上右键,用老大的程序,把它发送到“我的生词表”中。这样不断拾取生词,于文档中生成一个“我的生词表”。 〖巨词表〗: 即老大为小弟编写的第二个词汇表程序——在一篇文档中,只有成百上千的生词,每个生词为一行(也可称为一段),运行老大的程序,把它们一次性转成生词表。 一、关于iustar123兄的测试情况。 以下是引用liustar123在2006-12-15 11:27:59的发言:老大 我测试了一下 遇到一些问题~ 请看 我的 word2007 + 金山 2003 ………… 谢liustar123兄的仔细测试! 小弟测试过程中,也偶有“下标越界”现象,但小弟未按照liustar123兄那样去“补救操作”,因此不敢说liustar123兄碰到的情况是“非常意外”的。 前前后后的测试过程中,小弟还没有碰到过像liustar123兄所说的情况,但又不能确认在什么情况下必然会出现“下标越界”的提示(呵呵,这一点,小弟也还不明白“下标”是什么东西。老大的代码中没有这字样,因此,这是Word自带的消息框吧)。 二、小弟的测试情况。 1、老大的用心处: (1)大工程:为小弟新编写了“巨词表”程序。 (2)润物无声: ①词性与中文释义合在了一段,中间以半角空格隔开。解决了原先的词性单独为一段的空间过大问题。 ②生词如果在金山词霸里没有音标,则音标所在单元格为空,词性与中文释义单元格的样式仍然和其他生词的一致。即:一个生词有无音标,不影响到词性与中文释义所在单元格的样式。 ③对金山词霸的设置没有过多要求。从金山词霸2003到金山词霸2007,对于“屏幕取词”“显示任务栏图标”两项设置,不再有严格要求。即:只要是打开了金山词霸,就可以运行老大的两个生词表程序。 2、再扰动老大的一些细部问题: (1)现况:所有词性词义都为一段。 怪小弟在前边没有说清楚,因此,害老大辛辛苦苦帮小弟的忙总是要费好几番周折! 小弟理想中的情况是:每个词性都与相应的词义合为一段,词性与词义间用半角空格隔开。这样,有几个词性,就对应分为几段。而且,最好是每段都设置成悬挂缩进4个字符。这样,在生词表里,一个生词是有几个词性的,一目了然。 (2)现况:每个音标的最后一个字符都是Tahoma字体。 在老大去年编写的《自动加注音标》程序中,音标的方括号为Times New Roman字体,音标全为Kingsoft Phonetic Plain字体,看上去,格式统一,很是清爽。 现在的两个词汇表程序生成的音标中,方括号为Tahoma字体,音标的最后一个字符也和方括号一样是Tahoma字体,音标中其他字符为Kingsoft Phonetic Plain字体。这样,粗一看,音标的最后一个字符就类似于“乱码”了。 理想中的情况:方括号为Tahoma字体,音标所有字符都为Kingsoft Phonetic Plain字体。 小弟尝试于老大代码中修改SetRange的起迄,结果未能改好。还请老大指点! (3)现况:生词表的最后一行是多出的,要手工删除。 理想中的情况:“我的生词表”最后的成品是,有几个生词,表格就对应有几行。 在“小词表”中,不会觉得太麻烦,手工删除一下就好。但在“巨词表”中,毕竟属于“全自动”完成的,最后要去手工删除最后一行表格,感觉这有点像是“小尾巴”。 小弟的瞎猜:如果真正的要达到这样的几个生词对应几行的理想状态,怕是要影响程序的运行速度。 “巨词表”好办,编写一段代码,使得生词表生成之后,删除最后一个空行。 “小词表”可能就得明显停顿了。——每完成一个生词的转换,就得删除一次空行。 (4)现况:程序不够稳定。 ①“小词表”程序: “下标越界”的情况比较少见。“找不到”则比较频繁,须得对找不到的单词再重新发送一到两次,才能成功转换。——写到这里,突然奇想: 平常的处理是将“找不到”的生词重新发送几次(当然,前提是这个单词确实在金山词霸里有音标词性词义),这样,一个生词表里,有时便连着几行是同一个生词的“找不到”。如果能够自动把后边重新找到的音标词性词义覆盖到原来的“找不到”上,那可省了不少手工。这当中得注意的是,原来某个生词都已经标上音标词性词义了,可后来不小心又重新找了一次却是找不到的,竟把原来找到的覆盖了,这显然不允。 针对这样的情况,处理方案是:对一个新发送到生词表的单词,先判断生词表中是否已经有这样的一个生词,如果生词表中本来没这个词,则直接把这个生词加入生词表;如果生词表中早已有了它,则进行以下四种判断处理——这个生词的音标词性词义或者是“找不到”的,或者已经是正确的;后来想要发送的在剪贴板上的内容,或者是“找不到”的,或者是正确的。 概言之,实现的目的是: A、同一个生词表之中,避免同一个单词占据两行或多行,严格保证一个生词就只能占据一行,表格有多少行,就有多少个不重复的生词。也就是说,严格保证老大程序中的“编号”是对应生词数的。 B、当出现金山词霸会“即时显示”而在生词中却“找不到”的情况时(对于“小词表”程序和“巨词表”程序都一样),可以通过手工反复操作,使“找不到”字样被正确的音标词性词义覆盖,同时,又要保证原来正确的,不被后来错误的覆盖。 ②“巨词表”程序: 在不同版本的金山词霸上反复测试,基本上可以得出这样一个判断:“巨词表”程序的“转换成功率”在60%左右。 即,取若干个金山词霸可以“即时显示”的生词,首次运行“巨词表”程序,可能会全部都正确转换在生词表中。但再把这些生词在新建文档中测试十次(好比说建立十个新文档,把这些单词粘贴其中),每次未必会全部正确转换,有一两个生词就是显示“找不到(不是固定某一个生词,而是变化着的,这一次是“张三”找不到,下一次是“李四”找不到……),十个文档中,全部单词都能正确转换的,大约有五六个文档。 只要能有一次是正确转换出来的,就说明老大的代码是不会有问题的。更何况有那么多次可以成功转换!因此,这个稳定性的问题,所要考虑的范围就比较的大而杂了。诸如Windows系统的问题、金山词霸的问题、Office系统的问题。小弟实在不知这“疑难杂症”有没有十分有效的药方。请老大指引! 匆促之间,无法提供精确的测试数据给老大,请老大原谅! 另: 小发现—— 在“小词表”程序中,如果在“我的生词表”之后,粘贴英语文章,并对其中的生词进行“To 生词表”操作,那么,新的生词将发送到已经生成的生词表中,而不是再新建一个生词表。——也就是说,不论怎样运行“小词表”程序,一篇文档之中,只有一个“我的生词表”。 |