|
本帖最后由 qunwang6 于 2015-8-19 22:56 编辑 5 X% ?+ r; f$ N8 {6 E
) {1 S/ A5 w) E( ?) F. KReferences:" b# X6 g& ]7 k# M
Reverse engineering Apple Dictionaries
. C3 R% i: g* E% s \- W! u: y. iApple dictionaries7 q, l) ]2 }2 x6 s; M
usage:
" Y- K0 D. \# T4 v6 [! [- $ clang dedict.c -Wall -lz -o dedict. |2 {+ d; V: b Q- i+ z8 o" i4 M
- $ clang strip.c -Wall -o strip$ r$ D8 x- ]8 e7 u
- $ ./dedict "Oxford Dictionary of English" | ./strip > dict.xml% a1 z. R0 |3 f2 e6 V' m
- $ egrep -o 'd:title="(.+?)"' dict.xml | awk -F" '{print $2}' > words
复制代码 + b1 w, R: F, Z6 n) f$ a
需要注意的是
: m0 ~" b/ A, C1.# j( I# k$ g& t) h0 y, V+ P0 e
原始代码是默认转换/Library/Dictionaries/里的词典,若要转换自定义路径的词典,可将以下代码6 @9 _1 F1 C4 o& B) s2 e; y. U8 Q
https://gist.github.com/josephg/ ... d#file-dedict-c-L86
I$ O( [5 r I! O, y9 k3 J修改为
. } _8 B" J' o- sprintf(filename,"%sContents/Body.data",argv[1]);
复制代码 + O) T0 Q2 f9 O- a- B
2.
# E. ?0 A. ~9 f, [7 F$ ZOS X 10.11系统内置词典里面的文件目录发生了变化,需要改以下代码就可以用了。
8 _8 [0 e4 x1 Y要修改的代码
0 T& P$ e, U# Fhttps://gist.github.com/josephg/ ... d#file-dedict-c-L86
, C7 K8 i8 A3 `! c修改为2 A8 K, g" e6 g& n1 f; ]/ z4 `
- sprintf(filename,"%sContents/Resources/Body.data",argv[1]);
复制代码
' X, E* w% j0 f/ Q8 U/ o4 _1 s已编译好的文件。3 N$ g8 L" b( Q& m, G
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?免费注册
x
|