.NET开发

本类阅读TOP10

·NHibernate快速指南(翻译)
·vs.net 2005中文版下载地址收藏
·【小技巧】一个判断session是否过期的小技巧
·VB/ASP 调用 SQL Server 的存储过程
·?dos下编译.net程序找不到csc.exe文件
·通过Web Services上传和下载文件
·学习笔记(补)《.NET框架程序设计(修订版)》--目录
·VB.NET实现DirectDraw9 (2) 动画
·VB.NET实现DirectDraw9 (1) 托管的DDraw
·建站框架规范书之——文件命名

分类导航
VC语言Delphi
VB语言ASP
PerlJava
Script数据库
其他语言游戏开发
文件格式网站制作
软件工程.NET开发
再谈转换marc数据的体会---读取marc数据

作者:未知 来源:月光软件站 加入时间:2005-2-28 月光软件站

 

 

   今天CSDN上的网友乐悠悠要做对marc数据的检索,不嫌我技术低下,在blog上留言问我。我也不怕大家笑话,再写一篇marc的读取文章:)

 

首先要说的,无论是什么读或写marc数据,都必须吃透marc的数据格式。如果是cnmarc的格式,强烈建议参考《中国机读目录格式使用手册》,对格式的讲解很详细,保证事半功倍,根本不用看我在这里罗嗦。

读取,就分2步,一读,一取。

读:marc文件是.iso格式的文本,每一条记录都是分行的,有一个结束符chr(29)。所以可以一行一行的读取。

取:先获取记录头标区和地址目次区的信息,然后根据地址目次区的位置地址去切割。这里有字段分隔符chr(30),子字段标识符chr(31)

还是给个事例:

$--------chr(31)

@--------chr(30)

%--------chr(29)

#--------space

上边是为学习方便人为的替代符号

这是一条marc数据:

1.头标区:01071nam0#2200277###450#

固定24位,注意空格不能少哦。。

01071:记录总长,5位

nam0:如果是丛书(有225字段),就是oam2,当然每一位都有具体的意思。还有其他变化。这是常用的。

22:一般是22了,具体的意思也可以查书。

00277:数据字段区以前的字符总长度,5位。

450:一般是,具体一看书吧。

 

2.地址目次区,人为加了”;””,”区分。

001,0013,00000;005,0017,00013;…………………………801,0022,00771@

 

001,0013,00000 :表示字段0013位),字符长度00134位),在数据字段区开始的位置000005位)

801,0022,00771 :表示字段801,字符长度0022,在数据字段区开始的位置:00771

这里是读取的一个重要的地方了,知道了这几个数据,很容易分割出来。每个都是固定长度的。

3.数据字段区

[email protected]@##$a7-80142-191-4$dCNY46.00@…………………………………………@%

字段间就是@分隔的,子字段用的$

@##$,这里##就是指示符位置了。如101字段有指示符012,所以 @012$

大概就写这些了,具体的程序也没写,不知道对乐悠悠有帮助没有,希望有点助益吧。

                                                               一风一云

                                                               2004年9月14日




相关文章

相关软件