|
本帖最后由 bingbing 于 2011-3-5 22:49 编辑
" n) u& x0 D8 F" i A( E+ x$ C2 g( _8 s( V1 R' L. Z
众所周知,MDict上的德语词典比起英语、法语的显得太次了,没有一个看得顺眼、用得顺手的,真是让人痛心。7 Q: \9 J; p' O$ h7 j0 P
我在PC上用的是著名的Office-Biliothek,加载了些德德、德英和德法的词典,平时主要用Duden-Oxford的德英英德,使用体验非常好,于是老想着怎么把它搞下来,网上看了些说法,说这个软件用的控件比较特殊,普通的WM_GETTEXT指令对它没用,不才又不谙编程,只能使出最傻的招——按键精灵,呵呵,今天第一次用这个软件,不甚熟练地写了几行代码,用了十几分钟试抓了1000个词条,打包在附件里,请高手们看一下好做不好做。, y2 c$ E# u7 N4 f
这个代码的原理就是一行行地点击词条,然后另存为html文件。Office-Biliothek软件提供了三种另存格式:html、rtf和txt,html比较好,没有乱码,要转MDict估计最为方便,不过最讨厌的是格式跟软件本身显示的不大一样,斜体还是在的,但粗体跟音标就没有了,源码类似下面这样:8 S: ^% z! r; \" Q
------------% p- I. U n5 `6 ]6 s
<TITLE>ab|schinden</TITLE><BODY><h1>ab|schinden</h1>
& t7 P6 i' k9 P& w8 p$ p
, a' ~6 Y3 N; c9 m! J4 }; T<!-- @C%ID=00000765% -->
$ A6 t1 G" F, B6 @ <i>unr. refl. V.</i> sich abschinden: work <i>or</i> (<i>Brit. coll.</i>) flog oneself to
% l$ J- P4 f8 U% j7 Z8 f death; sich mit etw. abschinden: struggle along with sth.
8 u* z$ o+ ?/ b& y$ w<p>
- S2 q0 E. }3 {! H " z1 c0 |7 _; ]: C
<p>* Y+ u' o# v* K2 V/ z! ~$ O
Duden-Oxford - Großwörterbuch Englisch. 2. Aufl. Mannheim 1999. [CD-ROM]. Sat_Wolf, Bayern</BODY></HTML>
- u2 S% r" E2 L1 w& I3 N2 X-------------
/ q' R- q7 D- W* p, d v8 x! N6 z9 [8 z
而rtf格式比较好地保存了格式,也可以显示音标,但是有乱码,有些乱码问题不大,可以用替代的方法改回来,但有些乱码直接显示为问号,这点就比较麻烦了。2 R7 Z1 l& t" K% [! U! x. }
txt就不说了,基本上没用。
" a; P: t2 a3 E, m+ R0 ?) Q我在想,最麻烦的方法是html和rtf各存一份,然后把rtf转成html,再跟原来的html比对格式,自动把html版的格式和音标加起来。这些都可以用电脑完成,但是会很费时间,而且编程对我来说也是个挑战,所以目今之计就是做html版,没有音标也无所谓了,粗体不粗体习惯了就好。
W* r" T7 y$ C' i6 r下面贴一下我简陋的“按键精灵”代码,我还不知道怎么激活窗口,所以运行前要把Office-Biliothek最大化放在最前再按F10运行:7 u8 j. V1 b# _# C5 x2 ]8 [
------------5 n- G1 y2 l4 B, [# S$ Z
Var1=1 '抓取条目6 h# S9 [( E' e8 `* X
Rem Start
8 @, |5 L+ G" S, UMoveTo 16, 256 '词条图标处
/ N! ` J0 Q: X5 vDelay 107 O ~' V) L! l; s$ @. d) n' [' O
LeftClick 1 '点击词条
4 M, U9 o, }2 X$ U1 R& DDelay 10! Y; ?/ _; m, W
MoveTo 781, 101 '另存为处
+ D8 m L7 ?+ \: j; FDelay 10
; x. X9 o& }/ H5 }4 b8 dLeftClick 1 '点击另存为$ R) o" y- B5 g
Delay 209 t: |) i! o5 a
SayString "d:\temp\dict\" '另存为地址
+ _* p3 K( }3 j2 ADelay 20& t4 W8 |' g" g& z, F: p
SayString Var1 '文件名
% c# L0 B( c; K$ o0 s! [% r0 t" o& yDelay 20
7 [8 Y7 Z1 Q, Q! z XKeyPress "Enter", 1$ u3 U- o9 D- a
Delay 208 l. A: U1 l' _
MoveTo 215, 545 '下一词条处 a S$ X5 Y1 _
Delay 20
. D6 g8 l4 t, A1 @: A% }0 O4 ILeftClick 1 '点击滚动到下一词条
- Y/ ~/ A. p0 o7 x( wDelay 20' C5 Z; X, o w' J5 @
Var1 = Var1 + 1% s5 J5 }$ h( U1 [! v' \
If Var1 < 1000 Then Goto Start '先抓1000试试/ ^7 Q: P5 R' E
-------------
+ W1 _9 w$ @6 Z* @, M' A1 h, n$ A# k3 {" i) v9 q/ c
这样看来,抓完全部词条只是时间问题了,剩下的数据处理理应不难。" [9 X( P4 b s& {# J
能人志士们,麻烦帮我看看这些数据能不能用,如果有人可以帮忙处理的话,我今天就把程序发动起来。 |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?免费注册
x
|