|
本帖最后由 bingbing 于 2011-3-5 22:49 编辑
% c9 n5 W, H1 P- V2 H1 X2 ?3 I: \0 e! v6 O+ t5 X' K5 M
众所周知,MDict上的德语词典比起英语、法语的显得太次了,没有一个看得顺眼、用得顺手的,真是让人痛心。3 z4 x& \# j! T# t% x9 r! }
我在PC上用的是著名的Office-Biliothek,加载了些德德、德英和德法的词典,平时主要用Duden-Oxford的德英英德,使用体验非常好,于是老想着怎么把它搞下来,网上看了些说法,说这个软件用的控件比较特殊,普通的WM_GETTEXT指令对它没用,不才又不谙编程,只能使出最傻的招——按键精灵,呵呵,今天第一次用这个软件,不甚熟练地写了几行代码,用了十几分钟试抓了1000个词条,打包在附件里,请高手们看一下好做不好做。
" V/ `7 z8 G+ P& l这个代码的原理就是一行行地点击词条,然后另存为html文件。Office-Biliothek软件提供了三种另存格式:html、rtf和txt,html比较好,没有乱码,要转MDict估计最为方便,不过最讨厌的是格式跟软件本身显示的不大一样,斜体还是在的,但粗体跟音标就没有了,源码类似下面这样:
" g$ a8 `1 }; N2 v5 \4 k8 ^------------
' B9 _; K! v6 e$ F7 @<TITLE>ab|schinden</TITLE><BODY><h1>ab|schinden</h1>% N- z+ o/ I! m, g8 F7 I
' T) g8 b4 Q+ S$ W* m
<!-- @C%ID=00000765% -->1 q4 ]7 k- t; a
<i>unr. refl. V.</i> sich abschinden: work <i>or</i> (<i>Brit. coll.</i>) flog oneself to9 i& Z% T4 K7 O) ~; w6 d
death; sich mit etw. abschinden: struggle along with sth.
) [2 l7 F5 l; b/ Z/ w# ^<p>
; G+ D, ~; n# y& L" o # Q8 Q. g/ `, k1 o3 v
<p>
* p) S- O+ d. g* v Duden-Oxford - Großwörterbuch Englisch. 2. Aufl. Mannheim 1999. [CD-ROM]. Sat_Wolf, Bayern</BODY></HTML>2 V6 W. O2 _) Y
-------------( @; N; B; i7 q* H: V4 K
* E! O) J3 V! `. T5 L
而rtf格式比较好地保存了格式,也可以显示音标,但是有乱码,有些乱码问题不大,可以用替代的方法改回来,但有些乱码直接显示为问号,这点就比较麻烦了。" `) ~' A, [& r3 q0 t) j
txt就不说了,基本上没用。
, s, A0 s. J* u我在想,最麻烦的方法是html和rtf各存一份,然后把rtf转成html,再跟原来的html比对格式,自动把html版的格式和音标加起来。这些都可以用电脑完成,但是会很费时间,而且编程对我来说也是个挑战,所以目今之计就是做html版,没有音标也无所谓了,粗体不粗体习惯了就好。
% c4 Z: i5 M$ L% Z/ K; t; b# Q下面贴一下我简陋的“按键精灵”代码,我还不知道怎么激活窗口,所以运行前要把Office-Biliothek最大化放在最前再按F10运行:: X1 r0 V0 W' `* {: Q
------------
! _) X( e6 y6 Z- }2 _; ?Var1=1 '抓取条目
2 l7 q7 N3 q& MRem Start2 ^6 c0 C$ j" q
MoveTo 16, 256 '词条图标处6 p3 Y9 s. W1 `
Delay 10
+ z* w; D* J6 @& J7 i6 cLeftClick 1 '点击词条
: z7 F9 d: }2 H7 tDelay 10
3 d1 F9 J: i3 j# V) OMoveTo 781, 101 '另存为处/ V* x/ R9 U- |. |9 C
Delay 10
+ S5 Y. j( o- b8 X8 A5 [" r# {/ |LeftClick 1 '点击另存为
, ^5 k) U, o8 O3 |" NDelay 20
7 M' |- V. k! W. J) ?* CSayString "d:\temp\dict\" '另存为地址
+ l! c% x# f7 |5 eDelay 20
. p0 [0 o, }/ k' X# bSayString Var1 '文件名# m0 h5 E) B8 l
Delay 201 I5 Z3 S2 W) c- {3 X
KeyPress "Enter", 18 c* S; m1 E/ G' ^; l( ?7 K
Delay 206 Y5 Z$ i( Y/ {1 p* @# p) ?9 m
MoveTo 215, 545 '下一词条处
: a9 |' Q# k5 S4 w( }Delay 20
6 m. t* I# k) N3 a8 W6 x; i) ^LeftClick 1 '点击滚动到下一词条5 r& Z$ a! U) v9 \0 U% Z
Delay 20
, B$ b& E* F* vVar1 = Var1 + 1
4 l! u: c* I4 h7 _# L" ^If Var1 < 1000 Then Goto Start '先抓1000试试) G* v$ g2 t* {5 r5 U$ {6 F
-------------
) s2 L/ w( i; U! w) Q# ~$ b4 x/ O) A4 i# w
这样看来,抓完全部词条只是时间问题了,剩下的数据处理理应不难。& _& G0 O# m2 E9 w0 j1 I. j- Z
能人志士们,麻烦帮我看看这些数据能不能用,如果有人可以帮忙处理的话,我今天就把程序发动起来。 |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?免费注册
x
|