2024年1月25日发(作者:)
电脑编程技巧与维护 从道藏目录进MySQL说Excel公式和数据库范式技巧 贾满磊 ,王水 (1.南阳理T学院软件学院,河南南阳473000;2.宁波大红鹰学院,浙江宁波315lOO) 摘要:以《道藏目录》导入MySQL数据库并在PttP网页上显示为例,讲述中文信息在数据转换时所涉及的 MySQL相关技术和范式、Excel函数等技巧。 关键词:MySQL;Excel;字符集;范式 Techniques for Digitizing Dao Canon Catalogue with Excel and MySQL JIA Man—lei .WANG Shui (1.Nanyang Institute of Technology,He nan Nanyang 473000,China; 2.Ningbo Dahongying University,Zhejiang Ningbo 315100,China) Abstract:Based on a practical case of processing Dao Canon cata]ogue data,describes common techniques in dealing with Chinese text information using Excel,PHP and MySQL. Key words:MySQL;Excel;character set;normal form 《道藏》是中华特有的传统文化,除了汉字语种外.没有 其他语 的版本;目前 蘼芰》的数字化程度还较低,只有 部分网站提供文本下载之类的初级服务。下文将以《道藏目 录》导入MySQI 数据库为例,讲述在使用Excel和MySQL处 理类似的古文文本信息时的常见步骤和一些技巧。 3分类数据拆分 根据道教经典的分类传统规范13[,道藏分类原则足“■洞 四部十二辅”,其中三洞(洞真、洞玄、洞神)和【,【l部f太 玄、太平、太清、正一)是顶级目录,十二辅(本文、神符、 玉袂、童国、 绿、戒律、威倦、方法、 衍、 傅、耩颂、 表奏)是■洞的下属目录;例如,表l中的3个典籍都是 “洞真部”的“本文”类。 由于原始文本的分类将“洞”和“部”混合在一起,小 1 文本的特点 从文献[1]可以下载(G酋藏目 的文本,其格式为: l,l一1,重蛮惩量度人上品妙缌,0001天上004,洞真部本文 ,六 十一卷,这实际上是逗号分隔的CSV格式(最后一个逗号表示 符合数据库的范式要求;参见表l, “洞真部本文颧”这样的 字符串多次重复出现,因此必须将该宁段进行拆分,以消除 该行最后还有一个字段,但内容为空),其意义如表1所示。 表l《道藏目 序麓 研娩~勇码 1 1 1—41 l 425 原始格式 丹强 膈真舒赢x鞲 褥真部革定鞍 蕊鼻鄞毒支鞭 数据冗余。 巷辩 一~精 一罄 五并 享矗攥 轻名 釜蛮零量窟^上品妙艇 元始帮重席■±品妙轻矗音 元始靛 天遘簿捏鞋解 遥莽1l瘟藏野再 0001夭上0O4 0013 #土0{4 O0】3洪土090 作老 为了处理方便,预防可能产生的错误对电子表格数 的 影响,重新建立一个_T作表,命名为“H录处理”.并复制 “道藏目录”中的内容。 在“1二作目录”表中增加两列,分别代表“部”和“类”, 命名为“category”和“series”。由于分类文本在第E列(参 文献【2】) 因此在category列中,使用如下公式即可将对应的 古文典籍的一个最大特点是使用繁体字,并且南于可能 的通假字、异体字等较多,因此普通的GB2312字符集就不够 用了。另外,上面的文本已经按照逗号分隔的CSV数据格式 进行了初步的处理,因此对于这样的文本,可以直接使用Ex— ce1处理。 ’ j洞分类转换成为数字category值(以H2的公式为例): =IF(LEFT fE2,2)=”洞真”,1,IF fLEFT fE2 2)=”洞 2导入Excel表格 将上述目录文本存人一个文本文件中(例如,日录_lxt), 然后通过Excel的“导人外部数据”功能,将该文本文件导入 到Excel中;导入的时候使用逗号“,”为分隔符。然后,在 表格的顶部插入一个卒行,并使用下面的文本作为标题行: 玄”,2,IF(LEFT(E2,2)=”洞神”,3,0111 卜面的公式使用嵌套的IF函数,首先获得分类文本的前 两个宁符,然后根据这些字符和“洞真”等亨符串的比较结 果,获得分类的数量值。 H2的公式书写正确后,其他行的公式可使用Excel“编 序虢册虢一页码缝名涵芬楼道藏册页分颧卷敷作 者 这样,新建立的Excel文件共有7列,对应于Excel的A 辑”一“填充”一“向下填充”命令将所有“=:洞”部的c at— egory值设置好。 作者简介:贾满磊(1968一),男, 讲师,硕上,研究 向:计 到G列。将该文件存储到“道藏目录.xls”中;将该 作表更 名为“道藏目录”;在后续的处理中,我们需要多次使用这个 算机网络和软件;王水(1967一), 男,教授,研究方向:软件 1-程、数据挖掘。 收稿日期:2012—08—10 文件,因此我们将该文件上传到文献f2】,以备大家参考。 下面根据数据库的范式要求对这个Excel文件进行处弹。 电■壤疆技巧与 曩 2012.20
DATABASE AND INF0RMAT10N MANAGEMENT 类似的可以设置“四辅”的category值。 下面设置“十二辅”。 为了将公式写的比较短小易懂,分成两步走: (1)获取“十二辅”的文本(两个汉字): 在第1列增加一个字段,命名为“辅”;I2的公式为: =LEFT(RIGHT(E2,3),2) 例如,该公式可以将E2的“洞真部本文颊”中的“本 文”取出。 (2)将“辅”转换成为数值: 由于总共有12个“辅”的分类,因此,按照这12个分 类的顺序,构造一个字符串: ”文中神符玉款霾固 绿戒律威俄方法 衔 傅精颂表 奏” 通过查找“辅”列文本在上面字符串中出现的位置,来 计算“辅”值;将“辅”值设置到第J列,命名为“series”; J2的公式为: =(FIND(I2,”本文神符玉袂墓固 绿戒律威俄方法罘衍 傅 颂表奏”)+1),2 例如“神符”出现在上述文本串的第3个字符位置, (3+ 1)/2计算得“辅”值为2,即“十二辅”中的第2个。通过 Excel的“向下填充”功能,可以完成所有“辅”值的计算。 4 册、页数据计算 由于“册号一页码”和“涵芬模道藏册页”的数据也都 是冗余的,并且难以进行数值检索,因此也需要进行拆分处 理。例如,“1—417”代表第1册,第417页。 在第K列设置“册”字段,命名为“scroll”;K2的公式 为: =LEFT(B2,FIND C~”,B2)-1) 上述公式查找分隔符“一”的位置,然后通过Left函数 获取“册”值。 在L列设置“page”(页码)字段;L2公式为: =MID(B2,FIND C一”,B2)+l,LEN(B2)) 注意上面的公式中有一个小技巧:MID的最后一个参数 是子串长度,这里使用整个字串的长度作为子串的长度,即 一直取到原串的最后为止(当然子串的实际长度达不到该参 数的大小)。 类似的,可以在M和N列设置“涵芬楼册页”字段“Han— fenlouscroll”和“Hanfenlou_page”;M2和N2的公式分别为: =INT(LEFT(D2,4)) =MID(D2,5,8) 同样使用Excel的“向下填充”可以扩展上面的公式。结 果参见文献【2】的“目录处理”工作表。 5导入MySQL数据库 由于涉及的文本需要大字符集的支持,因此最好采用u— nicode编码。首先将“目录处理”工作表复制一份到“新目 录”工作表(仅仅复制“数值”,不复制公式等,参见文献 [2】),删除过渡用的列,并对列的顺序作适当调整,最后得到 的工作表形式如表2所示。 数据库与信息管理 表2处理后的目录工作表 臻 考静 垦■ 量衷 品 框 一一眷 i 0 :; 置 量月^ 8 一粤 i 巍% 谨 j奇 {■ 硅 将该工作表另存为CSV格式到C:\dao.CSV以备导入到 MySQL中。特别注意,dao.CSV文件需要使用uTF一8编码,因 此可以使用记事本该文件打开后,设置编码为UTF一8,并删 除第一行数据(表头),再重新另存一遍即可。这样的文件格 式已经可以满足数据库的要求了。 在MySQL中根据以上的10个字段建立相应的数据表 DaoCanonTOC: CREATE TABLE、DaoCanonToc、( 、id、int(1 1)NOT NULL, 、category、int(11)default 0, 、serial、int(11)default 0, 、scroll、int(11)default 0, 、page、int(1 1)default 0, 、rilfe、varchar(250)default…’. 、volumes、varchar(250)default , 、author"varchar(250)default…’, 、hanfenlouscroll、int(11)default 0, 、hanfenlou_page、varchar(250)default””, PRIMARY KEY?(、id、) )ENGINE=InnoDB DEFAULT CHARSET=utfS; 说明:其中的id、title、volumes、author分别对应序号、 经名、卷数、作者。CHARSET=utf8指定使用UTF一8编码。 导人命令在MySQL命令行客户端环境中进行: mysql>load data infile c:/dao.CSV into table daocanontoc fields terminated by , lines terminated by n ; 上面命令使用LOAD DATA命令导人数据,并指定字段分 隔符为逗号,行分隔符为回车。 6 在PHP网页上显示目录内容 根据数据库的编码格式,在网页中显示的时候,也需要 使用uff8编码,即在文件开头加上如下标记语句: <meta http-equiv=”content-type”content=“text/html;charset= utf_8”> 作为一个简单的例子,假设已经和数据库连接,则可以 使用如下PHP代码在一个表格中显示所有的目录数据: Sr=mysql_query(”select from canontoc”) ¥n=mysql_num_rows(Sr); echo”<table>”;,/f吏用表格 for(¥i=0;¥i<¥n;¥i++) { echo”<仃>”;//开始一新行 for(¥j=0;¥j<l0;¥j++){ echo”<td>”;//开始一个单元格 echo mysql_result(¥r,¥i,¥j); echo”</td>”;//当前单元结束 l echo”</tr>”;//当前行结束 } echo”</table>”://结束表格 l l
电脑编程技巧与维护 在服务器上的测试效果如图1所示。注意为了简化起见, 没有将部类数值转换成文本。 0 P 而道教经典恰恰又是中华独有的文化成果。以道藏目录进 MySQL为例,讲解将现有文本数据导人数据库时所需要的Ex— cel和MySQL的一些基本技术,这些技术不仅可以用于进一步 的道藏文献的数据库化,也可对类似的涉及文本处理特别是 古文文本处理的技术操作有一定的启发作用。 每 c蠖幻daotext,黑 f ☆|西 曩 参考文献 音 【1蒋门马.道藏目录.ht1]tp://www.byscrj.cn/jmm/Tao—Sutra_Con— tents.htm,2009. [2]贾满磊,等.道藏目录Excel数据文件.http://www.kuaipan com.crdfite/id 6698976455704894.htm,2012. 【3】傅雪峰,吴燕.简论道藏的分类.解放军艺术学院学报, 图1 PHP网站中的目录显示效果 2009,(2). 7 结语 相比于其他古典文献,道教经典的电子化进程比较慢, 矗 菏瞄 矗 ^、 ,{嚣 (上接第22页) 决问题;图1是“问题解决情况记录表”。 鲺隧瞬 情祝记录袁一 II号 l E硼 闩■捶出者 或 位 络工具作更清晰的描述。 比如,利用腾讯QQ的远程协助程序,利用这个程序可以 ∞目t 月■措谜 月户B 另外一目机器上登 ●吲晴章 剩“不 甩P值 ”裹 清除谲月户登 机器 佃息目目 使软件开发商的技术人员远程登录进行操作,这样比电话里 用语言说明更直接、更快捷。 鱼 ‘ 聊Ac上 雠螂 啬础iSSN曷 谭 导 毛,女饵 § 裟 ‘瞽 新一 。 腾讯QQ里的传送文件以及离线上传程序都有助于大于 盏 图1 无 1G的数据文件的上传和下载,使问题得以远程处理,节省时 间和金钱。 另外,腾讯QQ里的“群聊”,也可聚集一群使用同样软 2 与软件开发商沟通 2.1知识 件的系统管理员,大家可以一起讨论某个问题的解决方案。 利用这种方式,系统管理员也可以互相学习,共同进步。 2.2.3跟踪问题解决进度 这里的软件开发商专指图书馆自动化软件的开发者或者 代理商。他们最清楚整个软件的结构,是软件BUG的解决者, 也是软件升级更新的开发者。因此,系统管理员碰到棘手的 有些棘手的问题可能软件开发商当时解决不了,需要一 段时间的跟踪、查看后才能找到问题的症结;有些问题需要 问题都会跟软件开发商进行协商沟通,找到问题的解决方案。 跟软件开发商沟通中,要用到的知识除了图书馆专业知 识外,还要熟悉计算机方面的知识,如操作系统、数据库、 网络系统等。因为软件使用过程中碰到的问题和这些知识都 有关系。 软件开发商修改程序才能解决。这时候,系统管理员有责任 跟踪问题的解决情况,制定程序修改进度表,监督程序按进 度完成。 比如,用户反映最近查重的时候,系统总是提示查重失 败。系统管理员用自己的账号去查重,确实发现有这个问题。 在排除了其他可能后,系统管理员不知道问题的解决方法。 这时候,系统管理员咨询了软件开发商,软件开发商开始也 不知道是什么原因,就把部分数据拿去测试,经过数天的检 查才发现是其中一个字段超长引起的。在软件开发商检查数 比如,有次用户提出在登录图书馆自动化管理系统的时 候,系统提示“您在其他另一台机器上已登录”,但是用户并 没有在其他机器上登录过。系统管理员跟软件开发商沟通后发 现这是该系统的一个BUG,最简单的解决方法是到数据库中删 除一个表里的一个记录,这就需要系统管理员具备数据库方面 的知识。这个BUG的最终解决方法是修改程序,或升级系统。 2.2技巧 2.2.1明确表达 据的这些天,系统管理员应该每天询问跟踪一下问题解决情 况,避免问题被搁置、无人解决等情况的发生。 3 结语 系统管理员在13常工作中需要跟用户和软件开发商两方 进行沟通交流,共同解决问题,使自动化系统正常运行。有 效的沟通能迅速准确地找到问题所在,查到问题根源,顺利 在与软件开发商沟通中,要用简洁明了的语言准确描述 问题,并将自己对问题的处理情况一一进行描述。 2.2.2多种沟通渠道解决问题 解决问题。因此,系统管理员必须掌握跟用户和软件开发商 这两种对象的沟通方法和技巧,掌握沟通时必需的专业知识, 不断提升自身的沟通能力,保证高效率工作。 由于与软件开发商在地理位置上相隔比较远,在描述问 题的时候,用语言不一定能描述清楚,这时候,可以利用网 与
发布者:admin,转转请注明出处:http://www.yc00.com/web/1706140591a1443029.html
评论列表(0条)