有无可能通过Access的二次开发做一个词典的制作和查询的综合方案

对 Access 只有很模糊的概念,但是对Office的VBA二次开发略有点经验,如果写个脚本把 mdx 源文件直接导入 Access,或许可以较低的成本做一个PC端的词典制作和查询的综合方案,实现并超越现有的PC端查词软件的功能应该不复杂,毕竟这些独立查词软件底层的数据库操作交给Access做都可以更高效,而且VBA做窗口界面不过也就是拉拉扯扯的简单活。请有经验的专家发表点意见,如果评估时间精力允许打算做做这件事。

这个想法源于Access专家 @Shaoshi 兄的启发,以前多有得罪,皆就事论事,请勿见怪。

(吃惊地发现 Access 没有移动版)

参考:<>Access 与 Excel 最重要的区别是什么? - 知乎<>
<>宇哥教你用Access数据库做成语词典(节选),教育,资格考试,好看视频<>

4 Likes

瞎琢磨。。。

术业有专攻,建议用下物书堂,目前最好的查词软件。

1 Like

有没有物書堂的使用方法,耀西,我买来不会用
image

shaoshi 不是已经用上 access 好多年了吗

SQL存储,API 和 UI 重新设计自然更精确、更灵活、更精简的。

问题在于,把现在各种网上爬下来的数据HTML+JS 转化成SQL? 感觉是个累活,只有受众广的大词典,且在MDX格式上得不到满足的人们才会下大力气整理成新格式。

如果一开始不想仔细整理,可以直接扔到两个字段里:title, definition。如果想整理,只要把网站的原始css拿来分析一下,所有的字段类型就有了,依此制作一个Access数据库模板,然后写一个脚本逐条拆分过去。只有这个导入脚本需要根据不同的源数据定制一下,人力要求应该不会太高,特别是如果源数据象OED这样的本来就精细度很高明显就是服务器的数据库里用不同字段拼出来的。

在Access里面不难实现现有的几个PC端的查词功能,最后只要用一个函数把所有字段的值拼接成一个完整的html页面。如果需要移动端使用,只要用一个函数直接导出一个mdx源文件txt再压一个mdx。这些都是可以一劳永逸的工作。

相比之下,直接拿一个几百兆甚至上G的源数据拖到EmEditor中进行处理,或用一个python脚本默默地跑一遍,就显得笨拙和低效了。

是指,这样?

leg
1part of the body身体部位ADJECTIVE | … OF LEGS | VERB + LEG | LEG + VERB | LEG + NOUN | PREPOSITION | PHRASES ADJECTIVE➤left, right左腿;右腿▸➤front前腿▸➤back, hind, rear后腿▸➤lower, upper小腿;大腿◇an injury to his upper leg他大腿上的伤➤long长腿▸➤short, stumpy短腿;短粗的腿▸➤beautiful, good, shapely美腿;好看的腿;匀称的腿▸➤muscled, muscular, powerful, strong肌肉发达的腿;强壮的腿▸➤skinny, slender, spindly, thin瘦得皮包骨的腿;苗条的腿;细长的腿;瘦腿▸➤fat胖腿▸➤bandy罗圈腿▸➤hairy多毛的腿▸➤bare光腿▸➤artificial, prosthetic, wooden假腿;木腿▸➤bad, stiff坏腿;僵硬的腿▸➤good好腿◇I was able to stand on my good leg.我能靠那条好腿站立。➤hurt, injured受伤的腿▸➤broken, fractured断腿;骨裂的腿▸➤lame瘸腿◇He sat down with his lame leg outstretched.他坐了下来,伸着瘸腿。➤tired, weak疲惫的腿;虚弱的腿◇She crossed the finish line on tired legs.她拖着疲惫的双腿越过终点线。➤shaky, wobbly颤抖的腿◇He rose to his feet on shaky legs.他站起身来,两腿发颤。➤outstretched伸开的腿… OF LEGS➤pair两条腿◇a fine pair of legs两条美腿VERB + LEG➤bend弯腿▸➤brace绷紧腿◇He put his back against the car, braced his legs and pushed.他用背顶着汽车,绷紧双腿,然后推了起来。➤straighten伸直腿▸➤cross交叉双腿◇I moved the chair away from the table so I could cross my legs.我把椅子从桌边搬开,这样就可以翘着腿了。➤splay, spread叉开腿;伸开腿◇They made him put his hands on the police car and spread his legs.他们让他把手放在警车上,张开双腿。➤extend, stretch, stretch out伸腿;伸出腿◇She stretched her legs under the table.她把腿伸到桌子下面。◇It was good to get out of the car and stretch our legs (= walk around).从车里出来遛达遛达真舒服。➤lift抬腿◇The dog lifted its leg against the lamp post.狗抬起腿抵在灯柱上。➤move动腿▸➤draw up, tuck under蜷腿◇She sat with her legs drawn up underneath her.她把腿蜷到屁股底下坐着。➤kick踢腿▸➤swing, throw摆腿;踢腿◇She swung her legs over the side of the bed and reached for her crutches.她在床边摆着腿想要去够拐杖。➤entwine, tangle, wrap缠绕腿◇They gazed at each other, their legs entwined under the table.他们四目相对,腿在桌子下面缠在一起。➤break, injure使腿骨折;使腿受伤▸➤lose失去腿◇He lost a leg in a motorcycle accident.他在一次摩托车事故中失去了一条腿。➤amputate截腿◇She had her leg amputated below the knee.她的一条腿自膝盖以下被截掉了。➤shave, wax刮腿毛;用蜡除腿毛◇I’m getting my legs waxed tomorrow.我打算明天用蜡除一除腿毛。LEG + VERB➤move腿移动 ◇They ran together, their legs moving in unison.他们步调一致地一起跑。➤flail, kick腿乱踢;腿踢蹬◇He jumped to avoid the flailing leg of the defender.他跳起来避开防守队员的狂踢。➤pump腿迅速上下摆动◇She started running, fat legs pumping.她开始跑,两条胖腿上下摆动。➤bend腿弯曲▸➤buckle, give way腿发软◇His legs buckled and he collapsed on the floor.他双腿一软倒在了地板上。➤shake, tremble腿打哆嗦▸➤dangle, hang, swing腿垂悬;腿悬吊;腿晃悠◇He sat with his legs dangling off the bridge.他坐在桥边,两腿悬荡着。➤ache腿疼LEG + NOUN➤exercise腿部运动▸➤muscle腿部肌肉▸➤cramp, injury, pains, ulcer, wound腿部痉挛;腿部伤痛;腿疼;腿部溃疡;腿伤▸➤room (usually legroom) 腿部空间◇You don’t get much legroom on economy class.经济舱腿部空间不够大。➤extensions腿部伸展◇Leg extensions use the quadriceps muscles to extend the knee.腿部伸展运动利用四头肌伸展膝盖。PREPOSITION➤between the/your legs在两腿之间◇The dog sloped off, its tail between its legs.狗夹着尾巴溜走了。➤in the leg在腿部◇He was shot in the leg by a sniper.他被狙击手射中了腿部。➤on the/your leg在腿上◇I had a big bruise on my leg.我腿上淤青了一大片。➤on one leg用一条腿◇Many birds are able to stand on one leg for hours at a time.许多鸟能单腿一连站好几个小时。PHRASES➤your leg in a cast, your leg in plaster (BrE) 腿上打着石膏◇He was wheeled out of the hospital with his leg in a cast / in plaster.他一条腿打着石膏,坐在轮椅上被推出医院。

这还只是经过HTML引擎渲染过处理过的,源文字更是夹杂着各种HTML标签。一齐放在DEFINITION里,一个词典得怎么处理,看看HTML的标签、CSS里结构信息。本站的 SIO 词典已经数据化了,不知用的是什么,软件也只在电脑上可以加载。还要开发相应的APP.

这样的释义没有任何的html标签,就是在现有的mdx中也没有显示效果,这和Access无关。

Access中的释义字段的内容可以是一段包含 html 标签的文本。如果释义精细分割过,每个字段可以是一段纯文本,Access可以在输出页面根据字段类型和css自动加上格式。

在PC端输出释义页面的工作,在Access中用VBA二次开发容易实现,比从头开始写一个独立软件简单太多。如果需要移动端使用,用一个简单的脚本 Export 一个mdx源文件txt再压出一个mdx给移动设备用。

可是源数据是SQL的不多啊,大部分都是从EPUB或在线网站的HTML整理成的MDX.

这样的释义就是只包含HTML而缺少了CSS的结构信息,所以才挤在一块的。

而如果不要HTML,那么源数据都没有。

那么就只有扫描版以及进一歩的切图以及OCR版作词典了。

SQL对数据的操控力自然是强,不过SQL的数据从哪来呢?

Access可以包含HTML,也可以包含纯文本再由css渲染?

那直接导入ACCESS就好了啊,源TXT就是一个个的词条:一个词头+一个内容

把 mdx 的源文件 txt文件逐条拆分填入 Access 数据模板内。最简单的办法就是把源文件中的html片段直接填进Access模板内。

这是最省事的办法

1 Like
  1. 我只懂Win平台写点小程序,安卓平台要用还是需在 Access 中导出 mdx的txt源文件压出mdx

  2. “一坨无结构的数据”----这只是最省事的办法,即使这样也比操作一个几百兆上G的txt文件强太多,而且很多网站上抓取的数据css已经把数据的结构分的很清楚,拆分导入Access并不难

  3. 功能优点:在PC端上把词典的制作和使用集成在一起

  4. 现有的 mdx 转入Access,只需要用上面说的“一坨数据”的最简单方法,就是你以前什么显示效果现在还什么效果

  5. JS和CSS作为一个字段保存,Access内部的查词页面上检索到一个词条后,以它的所有字段数据为原料和加上一个共用的js和css,拼接出一个完整的html页面显示出来

用Access管理,并不能说把制作成本降到十分之一,只能说同等的成本下,得到更好的管理性和扩展性

并不指望Access带来什么神奇的魔力,主要目标----同等的制作成本下,更好的管理性和扩展性。如果管理性和扩展性都不重要,那这个方案对他就没有意义。

Access 似乎是不应被忽略的管理和检索mdx源数据非常高效的工具,花大量时间制作词典的朋友不妨抽点时间研究一下,应该会有不小收获。

Access官方文档:
<>Access video training - Microsoft Support<>
<>Access help & learning<>
<>https://learn.microsoft.com/en-us/office/client-developer/access/access-home<>

多个数据库之间可以独立存在而相互检索数据
<>Import or link to data in another Access database - Microsoft Support<>
<>Microsoft Office Access Lesson #14 - Multiple Databases with linked tables - YouTube<>
<> Access 跨库查询_百度搜索 (baidu.com)<>

补充信息:
<>Access和SQLServer有什么区别? - 知乎<>

1 Like

难道没有任何一位坛友也认为 Access 是管理mdx源数据的最佳工具?并且可最方便地定制PC查词客户端?达到同等的正文展示效果并不会显著增加词典制作的工作量?

1 Like
  1. 没用过Access,Office平常只用三件套,OneDrive 和 OneNote 偶尔能见到
  2. 有这折腾的空,可以多读几页词典,就不用再通过Access看词典了
  3. 现在查词的瓶颈在于词典本身的结构化查询、内化到脑子里;方便的即时修改功能用户市场小,微不足道。

Access学习成本 + 可有可无的收益 + 还有更重要的事 => 感谢你的分享

换个角度,你可以考虑开发个大家能够在线合作修改同一本词典的 Access 协作软件,这样有兴趣的会更多,参与的人多一些。

这当然是针对常常花比较多的时间在制作词典的朋友而言,如果自己不做词典任何工具都是不必要的成本。探索新的技术路线,先务虚再务实是比较实际的做法。

对的,普通用户需要的是一个傻瓜工具,打开mdx,查词的时候发现错漏直接编辑修改 。

1 Like

我觉得楼主的主题可以上位化概括为将词典拆解后存入数据库,倒未必一定要限定Access。这个想法如果是普适性地对付所有词典,是不现实的。但也不能说毫无用处,可以针对一两本词典进行这项工作。比如我就想要一个能够生成一词一义一句的anki卡片的工具,如果预先拆解了一本词典,就很容易做到。

1 Like

access不能跨平台,支持这个是浪费时间。

1 Like