缘起
在清理电脑磁盘的时候,看一看各安装文件夹有占用了多大容量,发现有道词典居然达140MB了,于是进去看看。
发现个有趣的文件:XXX.sql。
首先我们看一看它的安装文件夹的结构:
Dict └─Application │ guid.dat │ Readme.txt │ uninst.exe │ vendor.dat │ YodaoDict.exe │ ├─5.4.43.3217 │ │ CrashRpt.dll │ │ dictcn.db │ │ dicten.db │ │ doc.tpl │ │ guid.dat │ │ InstallDaemon.exe │ │ Monitor.exe │ │ TextExtractorImpl32.dll │ │ TextExtractorImpl64.dll │ │ Versions.xml │ │ WordBook.exe │ │ WordStrokeHelper32.dll │ │ WordStrokeHelper64.dll │ │ XDLL.dll │ │ YodaoDict.api │ │ YoudaoCookieAssist.exe │ │ YoudaoDictInstaller.exe │ │ YoudaoDictPlugin.mxaddon │ │ YoudaoDictPlugin.sext │ │ YoudaoDictPlugin_360.crx │ │ YoudaoEH.exe │ │ YoudaoWSH.exe │ │ │ ├─intro │ │ │ pre.html │ │ │ step1.html │ │ │ step2.html │ │ │ step3.html │ │ │ style.css │ │ │ │ │ └─images │ │ arrow.png │ │ dot.gif │ │ sprite.jpg │ │ topbar_step_arrow.png │ │ topbar_step_bg.png │ │ │ ├─otherskins │ │ │ login.bmp │ │ │ login.xml │ │ │ │ │ └─simisent │ │ │ default.js │ │ │ example-similar.html │ │ │ jquery.min.js │ │ │ │ │ ├─css │ │ │ bg.png │ │ │ dict.css │ │ │ nav.png │ │ │ new-sprite.png │ │ │ OffLine.jpg │ │ │ s-search-.png │ │ │ s-search.png │ │ │ similar.css │ │ │ │ │ └─images │ │ fangfa1.png │ │ fangfa2.png │ │ │ ├─res │ │ │ fan.xml │ │ │ faq.html │ │ │ updater.xsl │ │ │ │ │ ├─images │ │ │ image-q1-.gif │ │ │ image-q3-.gif │ │ │ image-q3-.gif │ │ │ laba1.gif │ │ │ title_back.gif │ │ │ │ │ └─style │ │ global.css │ │ updater.css │ │ │ ├─resultui │ │ │ commonfile.xsl │ │ │ defaultad.html │ │ │ exampleresult.xsl │ │ │ index.html │ │ │ index3.html │ │ │ instantresult.xsl │ │ │ miniresult.html │ │ │ miniresult.xsl │ │ │ property.ini │ │ │ pup.html │ │ │ queryresult.html │ │ │ result.xsl │ │ │ ss_dict.xsl │ │ │ strksrchresult.html │ │ │ verifycode.html │ │ │ wbblank.html │ │ │ wbbrowser.html │ │ │ wbfinish.html │ │ │ wbreview.html │ │ │ wbwelcome.html │ │ │ wikiresult.xsl │ │ │ │ │ ├─css │ │ │ base.css │ │ │ bg-win7.jpg │ │ │ bg.jpg │ │ │ body-bg.png │ │ │ default.css │ │ │ loading.gif │ │ │ mini.css │ │ │ new-sprite.png │ │ │ pic-bg.png │ │ │ play.png │ │ │ stroke.css │ │ │ │ │ ├─images │ │ │ │ back.png │ │ │ │ background.png │ │ │ │ cidian_aqurebutton_close.gif │ │ │ │ cidian_aqurebutton_open.gif │ │ │ │ cidian_point_empty.gif │ │ │ │ cidian_point_solid.gif │ │ │ │ confirm.png │ │ │ │ defaultAdv.jpg │ │ │ │ displaypoint.gif │ │ │ │ dont-remember.png │ │ │ │ earthpic.jpg │ │ │ │ forget-disable.png │ │ │ │ forget.png │ │ │ │ forget2.png │ │ │ │ graypoint.gif │ │ │ │ graypointpoint.gif │ │ │ │ loading.gif │ │ │ │ logo.gif │ │ │ │ logo.png │ │ │ │ mask.png │ │ │ │ newfeaturepic.gif │ │ │ │ next.png │ │ │ │ next2.png │ │ │ │ nomemtime.png │ │ │ │ nomemword.png │ │ │ │ nosound.GIF │ │ │ │ notebook-bg.png │ │ │ │ noword.png │ │ │ │ OffLine.jpg │ │ │ │ outlink.gif │ │ │ │ phonetic-down.png │ │ │ │ phonetic-hover.png │ │ │ │ phonetic.png │ │ │ │ pre.png │ │ │ │ pre2.png │ │ │ │ prev.png │ │ │ │ remember-disable.png │ │ │ │ remember.png │ │ │ │ remember2.png │ │ │ │ right-top-sprite.png │ │ │ │ sound.png │ │ │ │ submitbutton.gif │ │ │ │ voice.png │ │ │ │ voice.swf │ │ │ │ welcome-down.png │ │ │ │ welcome-hover.png │ │ │ │ welcome.png │ │ │ │ │ │ │ └─NowWaiting │ │ │ IMG00000.bmp │ │ │ IMG00001.bmp │ │ │ IMG00002.bmp │ │ │ IMG00003.bmp │ │ │ IMG00004.bmp │ │ │ IMG00005.bmp │ │ │ IMG00006.bmp │ │ │ IMG00007.bmp │ │ │ │ │ ├─index │ │ │ │ fan.xml │ │ │ │ index5.html │ │ │ │ lj5.html │ │ │ │ wiki5.html │ │ │ │ │ │ │ ├─css │ │ │ │ │ index.css │ │ │ │ │ │ │ │ │ └─index │ │ │ │ bg.jpg │ │ │ │ bg.png │ │ │ │ button.png │ │ │ │ button_toggle.png │ │ │ │ down.png │ │ │ │ hover.png │ │ │ │ index.png │ │ │ │ stroke-tips.png │ │ │ │ │ │ │ ├─images │ │ │ │ .jpeg │ │ │ │ .jpeg │ │ │ │ baike.jpg │ │ │ │ examples.jpg │ │ │ │ │ │ │ └─js │ │ │ all-min.js │ │ │ │ │ └─js │ │ all-min.js │ │ wordBook.js │ │ │ └─skins │ │ bg-win7.jpg │ │ default.css │ │ default.png │ │ defaultWin7.css │ │ popup.bmp │ │ wb.bmp │ │ win7-default.bmp │ │ win7-default.xml │ │ xp-default.bmp │ │ xp-default.xml │ │ │ └─Loading │ IMG00000.bmp │ IMG00001.bmp │ IMG00002.bmp │ IMG00003.bmp │ IMG00004.bmp │ IMG00005.bmp │ IMG00006.bmp │ IMG00007.bmp │ IMG00008.bmp │ IMG00009.bmp │ IMG00010.bmp │ IMG00011.bmp │ ├─Localdicts │ 21EC.ydic │ basicCE.ydic │ basicEC.ydic │ CE.idx │ CE.ifo │ EC.idx │ EC.ifo │ newCE.ydic │ phrase.ydic │ sentenceDict.sql │ └─Stable │ Acrobat2Dict.dll │ YDChromeTextExtractor.crx │ YoudaoGetWord32.dll │ YoudaoGetWord64.dll │ └─extensions └─firefox │ chrome.manifest │ install.rdf │ YDFFMiddleware.dll │ └─chrome └─content getword.js main.xul
结构
发现一个以sql为后缀名的文件,一开始还以为是SQL脚本。但大小为:40.9MB,觉得不太可能了。即:"...\Dict\Application\Localdicts\sentenceDict.sql"
用UltraEdit打开(用记事本打开,内存小的话会卡住)
看到有关键字:SQLite format... 原来是SQLite类型的开源数据库。
SQLite,是一款轻型的数据库,是遵守ACID的关联式数据库管理系统,它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。它能够支持Windows/Linux/Unix等等主流的操作系统,同时能够跟很多程序语言相结合,比如 Tcl、C#、PHP、Java等,还有ODBC接口,同样比起Mysql、PostgreSQL这两款开源世界著名的数据库管理系统来讲,它的处理速度比他们都快。SQLite第一个Alpha版本诞生于2000年5月。 至今已经有12个年头,SQLite也迎来了一个版本 SQLite 3已经发布。
官网:SQLite Home Page http://www.sqlite.org/
使用 SQLlite Database Browser 打开:
可执行SQL语句:
可以看出,它包含的主要是句子内容,应该只是其中一个数据库,其它的本地数据库可能在同文件夹中的其他文件。
一点想法:
如果用winform写一个读取该文件的查询器,是否可以写个像词典的东西呢?