惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Simon Willison's Weblog
Simon Willison's Weblog
P
Privacy International News Feed
www.infosecurity-magazine.com
www.infosecurity-magazine.com
T
Troy Hunt's Blog
Hacker News - Newest:
Hacker News - Newest: "LLM"
Attack and Defense Labs
Attack and Defense Labs
S
Secure Thoughts
V2EX - 技术
V2EX - 技术
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
O
OpenAI News
Cloudbric
Cloudbric
Google Online Security Blog
Google Online Security Blog
Schneier on Security
Schneier on Security
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
Help Net Security
Help Net Security
Cyberwarzone
Cyberwarzone
G
GRAHAM CLULEY
L
Lohrmann on Cybersecurity
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
Spread Privacy
Spread Privacy
NISL@THU
NISL@THU
N
News and Events Feed by Topic
T
Tenable Blog
S
Security @ Cisco Blogs
N
News and Events Feed by Topic
The Hacker News
The Hacker News
C
CXSECURITY Database RSS Feed - CXSecurity.com
宝玉的分享
宝玉的分享
月光博客
月光博客
酷 壳 – CoolShell
酷 壳 – CoolShell
美团技术团队
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Google DeepMind News
Google DeepMind News
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
T
Tailwind CSS Blog
V
Visual Studio Blog
P
Proofpoint News Feed
Webroot Blog
Webroot Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
博客园 - 三生石上(FineUI控件)
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
Jina AI
Jina AI
雷峰网
雷峰网
T
The Blog of Author Tim Ferriss
Hugging Face - Blog
Hugging Face - Blog
腾讯CDC
L
LangChain Blog
The Register - Security
The Register - Security
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
博客园 - 聂微东

博客园 - 优雅旋律

四角号码 对照表 ScriptManager Bug Application_Start 不执行 loading 关机效果 ZT Asp.net 2.0 自定义控件开发专题[详细探讨页面状态(视图状态和控件状态)机制及其使用场景] ZT 数据库范式浅解 ZT 数据库设计系列:数据库设计5步骤 ZT Web Control 开发系列(一) 页面的生命周期 Resharper 4.0 终于RC了... GridView、DetailsView、FormView 、Repeater、DataList的区别 (ZT) 常用正则表达式 ZT linq(update) 更新用 自动赋值方法 利用对象序列化将购物车保存在Cookie中 (ZT) ajax tab 动态设置主题(Theme) 一些注意 持久化数据 关于vs2008的Eval方法 重大失误 datapager分页问题 (点击两次)
MarcHandler (Marc ISO2709)
优雅旋律 · 2008-07-02 · via 博客园 - 优雅旋律

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Text;
 5 
 6 namespace ISO2709
 7 {
 8     public class MarcHandler
 9     {
10         private const char 记录分隔符 = (char)29;
11         private const char 字段分隔符 = (char)30;
12         private const char 子字段分隔符 = (char)31;
13 
14         private const int 头标区长度 = 24;
15         private const int 字段长度 = 12;
16 
17 
18 
19         public string Record;
20         public MarcHandler(string Record)
21         {
22             this.Record = Record;
23         }
24 
25 
26         private Record SingleRecordHandler(string Record)
27         {
28             var result = new Record();
29 
30             int 记录总长度;
31             int 数据基地址;//目次区结束位置
32 
33 
34             int 目次区长度;
35             string 目次区内容;//每个12位:字段标识符(3)  字段长度(4)  字段起始地址(5) ;        字段标识符 应查找对应字段名
36 
37             int 字段个数;
38             int 字段标识符;
39 
40             int 数据区长度;
41             string 数据区内容;//个数对应 目次区中的字段个数
42 
43             string[] 数据字段数组;
44             string[] 数据子字段数组;
45 
46             int i;
47             string[] tmp;
48 
49             记录总长度 = Record.Substring(04);
50             数据基地址 = Record.Substring(125);
51 
52             目次区长度 = 数据基地址 - 头标区长度 + 1;
53             目次区内容 = Record.Substring(头标区长度, 目次区长度);
54             字段个数 = 目次区长度 / 字段长度;
55 
56             数据区长度 = 记录总长度 - 数据基地址;
57             数据区内容 = Record.Substring(数据基地址, 数据区长度);
58 
59             //配置文件:数字与字段名映射(01-ISBN,010-出版社等)
60             //1.得到所有字段标识符
61             //2.取得数据区内容与目次区字段标识符的对应字段构建Table(依次对应,注意有子字段,通过"子字段分隔符"分隔)
62             //3.如果"字段标识符"的数字与配置文件中的数字相同,设置实体类Record中相应字段的值 
63 
64             return result;
65         }
66 
67         public IEnumerable<Record> RecordSplit()
68         {
69             var result = new List<Record>() ;
70 
71             var RecordList=Record.Split(记录分隔符);
72             foreach (var r in RecordList)
73             {
74                 result.Add(SingleRecordHandler(Record));
75             }
76         }
77 
78         public void ToExcel()
79         {
80             foreach (var r in RecordSplit())
81             { 
82                 //导出到Excel
83             }
84         }
85  
86     }
87 
88     public class Record
89     {
90         public string ISBN { setget; }
91         public string 出版社 { setget; }
92         // 自己添加 
93     }
94 }
95 


Marc数据格式:(记录分隔符分隔)
        1.记录头标区:24 位,0 - 4位字符为该记录的总长度 ,1 2 -1 6位为数据基地址。它的值等于头标区长度与目次区长度之和,即数据基地址-24=目次区长度;相当于表信息
        2.目次区:12位*n个 组成 (字段分隔符分隔) ,字段标识符(3)  字段长度(4)  字段起始地址(5);相当于列名
        3.数据区:目次区字段名所对应的值,(字段分隔符分隔,其中包含的子字段由子字段分隔符分隔);相当于值