ImageVerifierCode 换一换
格式:DOC , 页数:35 ,大小:406.50KB ,
资源ID:6250233      下载积分:15 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.docduoduo.com/d-6250233.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(EBCDID公共转码器及转码模拟器的实现.doc)为本站会员(wo7103235)主动上传,道客多多仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知道客多多(发送邮件至docduoduo@163.com或直接QQ联系客服),我们立即给予删除!

EBCDID公共转码器及转码模拟器的实现.doc

1、EBCDIC 文件转码器 厦门大学软件学院 - 1 -本科毕业论文(科研训练、毕业设计)题 目:EBCDID 公共转码器及转码模拟器的实现姓 名:学 院:软件学院系:软件工程专 业:软件工程年 级: 学 号:指导教师(校内): 职称: 指导教师(校外): 职称: 年 月 日EBCDIC 文件转码器 厦门大学软件学院 - 2 -EBCDID公共转码器及转码模拟器的实现摘要 EBCDIC 文件公共转码器主要是针对源系统(在 UDI 项目中,专指 DCC 和国际卡系统)的 EBCDIC 文件进行解码,解成 UDI 内部标准的 ASCII 文件格式,中文部分采用GBK 编码。同时进行格式检查,对不符合

2、检核规则的记录生成相应的 reject file(不符合检核规则而丢弃的记录)和 warning file(不符合检核规则报错但继续转换的记录).公共转码器包含日志组件,XML 解析器。转码模拟器是 EBCDIC 文件公共转码器的逆向转换操作,支持将 ASCII 文件,通过 XML Table Definition 格式定义文件,转换成模拟的 EBCDIC 文件。反转时不进行格式检查,但反转要求 ASCII 文件是定长文件,最后只生成转换得到的EBCDIC 文件。本文档详细描述了公共转码器和转码模拟器的设计构思,处理流程以及与其他模块的接口.关键字 EBCDIC 文件公共转码器 UDI XML

3、 解析器 转码模拟器 EBCDIC 文件转码器 厦门大学软件学院 - 3 -Abstract EBCDIC file commonality coding decoder mostly decodes the EBCDIC file in the source system (It is for the DCC system and international block system in the UDI project).It decodes into the ASCII file format according the UDI inner standerd.The Chinese pa

4、rt adopts GBK coding.At the same time ,carrying the format checking.It will create corresponding rejecting file and warning file while it dose not according to checking rule.The commonality coding decoder contained log module and XML parser.Code decoder simulator is the opersite operation to EBCDIC

5、file coding decoder .It supported to decoding ASCII file to EBCDIC file ,through XML Table Definition format definition file.It will not carry the format checking ,but it required the file to be fixed-long .Finally ,it will only create the EBCDIC file.The document particular described the design of

6、commonality coding decoder and decoder simulator, transaction flow and the interface with other module.Key Words EBCDIC file commonality coding decoder UDI XML parser decoder simulatorEBCDIC 文件转码器 厦门大学软件学院 - 4 -目录EBCDID公共转码器及转码模拟器的实现 .2第一章 引言 6第二章 系统设计 .81.模块设计的基本需求及设计原则 .8(1)基本需求(如表 1) 8(2)设计原则(如表2

7、) 82.模块的整体结构 .9(1)模块的整体框图:如图1 .9(2)各模块间的调用关系:如图2 .10(3)模块的整体流程:如图3 .113.重要的数据结构及公共参数 12(1)Cobol字段转码前后类型和长度对照表:(如表3) 12(2)检核规则定义: 15(3)系统 ID: 17第三章 详细设计 .181.EBCDIC文件模拟器 18(1)功能定义 : .18(2)模块框图: .18(3)反转码的处理流程: 19(4)反转码函数: .192.模块对外提供接口说明及使用举例 23(1)EBCDIC文件公共转码器 (EbctoAsc) 23(2)EBCDIC文件模拟器(EbcSimulato

8、r) .243.XML解析器 .25(1)xml介绍 25EBCDIC 文件转码器 厦门大学软件学院 - 5 -(2)xml解析器介绍 .27(3)编写的xml解析器的类 28(4)示例 31结论 .32致谢语 .33参考书目 .34EBCDIC 文件转码器 厦门大学软件学院 - 6 -第一章 引言中国建设银行和其他银行一样面临着入世后带来的各种机遇和挑战,配合建设银行上市的步伐,满足内部股份改造的需要,全面提高整体科技应用水平成为当务之急。如今,建行的柜面系统已经很完善了,但是对客户信息的管理,决策支持系统还有待进一步的完善,DCC(数据集中工程)就是把数据集中在总行统一处理,另外考虑到各系

9、统间数据的交互,于是引入的 UDI(统一数据交换池)的项目,而 DCC 和国际卡业务的数据都是在大型机上以 EBCDIC 码(Extended Binary-Coded Decimal Interchange Code,扩展二、十进制交换码)的形式存储的,要与其他系统进行交互既要转换成通常所用的 ASCII 码的形式,我们编制的 EBCDIC 文件公共转码器功能是将 EBCDIC 码文件转换成 UDI 内部标准的 ASCII 文件, EBCDIC 是 IBM 公司为它的大型机开发的 8 位字符编码,转码时先装入公共配置文件及表定义文件。公共配置文件定义了一些合法的缺省格式,表定义文件记录的是元

10、数据,即对数据的类型、属性、长度等等一些相关信息的描述。根据装入的表定义文件中数据的类型执行相应的检核程序,对不符合检核规则的记录生成相应的 reject file(不符合检核规则而丢弃的记录)和 warning file(不符合检核规则报错但继续转换的记录) 。然后执行相应的转码程序。EBCDIC 文件公共转码器还包含日志组件和 XML 解析器。日志组件时刻记录程序的运行情况,输出程序运行中产生的错误、警告及一些相关信息。XML 解析器用来解析 XML 文件,在本程序中是很重要的组件,公共配置文件和数据的表定义文件都是存储在 xml 文件中的,对于不同的数据只要装入不同的表定义文件即可运行转

11、码程序得到转码后的文件。这样有利于程序的模块化和封装性,对不同的数据不用编写不同的转码,程序增强了程序的通用性,另外考虑到将来的平台测试,以及测试数据模拟的问题,增加了一个用于测试的模块(EBCDIC 文件模拟器),主要用于从输入的 ASCII 源文件,根据COPYBOOK 定义,生成对应的 EBCDIC 模拟文件。 转码模拟器实现的是 EBCDIC 公共转码器的逆向转换操作,即将 ASCII 文件转换成 ECBDIC 文件,转换的过程是先装入公共配置文件和表定义文件,反转过程不用进行类型检核,直接根据表定义文件中定义的数据类型执行相应的反转码函数。在这次项目中,我主要负责的是转码模拟器的实现

12、以及 XML 解析器的封装。本文档主要描述了EBCDIC 文件转码器 厦门大学软件学院 - 7 -1. 公共转码器及转码模拟器的设计构思,处理流程以及与其他模块的接口。2. 具体描述了模块的整体结构,包含的各个子模块的功能及相互之间的关系。3. 模块的对外接口及实用实例。4. XML 解析器的原理及应用实例。EBCDIC 文件转码器 厦门大学软件学院 - 8 -第二章 系统设计1.模块设计的基本需求及设计原则(1)基本需求(如表1 )# 需求描述 来源于R001 处理性能大于 1GB/SR002 支持 EBCDIC 码文件转码成 UDI 标准的定长加分隔符ASCII 码文件R003 支持带分隔

13、符的 ASCII 码文件转码成 UDI 标准的定长加分隔符 ASCII 码文件(目前还没有做,将来支持)R004 支持定长 ASCII 码文件转码成 UDI 标准的定长加分隔符ASCII 码文件(目前没有做,将来支持)R005 支持对转码前后的文件进行检核R006 对转码过程有相应统计分析,形成结果标记文件R007 对检核出错的数据,能根据检核规则形成 rejectfile 或warning fileR008 对出错次数有控制,当超过最大允许 reject 或 warning 次数时停止转码R009 对于检核规则应实现可配置R010 能够依赖元数据定义的 XML 文件实现对各种文件的自动转码,

14、模块必须具有通用性表 1(2) 设计原则(如表2)# 设计原则描述 其他P001 采用 C/C+进行编写,必须支持 UDI 服务器的运行平台 EBCDIC 文件转码器 厦门大学软件学院 - 9 -AIX以命令行的方式提供给应用层调用。 P002 公共转码模块的性能应该达到 1GB/分钟 的处理速度。P003 设计上应该能够处理所有小于 64GB 的文件。P004 支持 EBCDIC 定长文件和 ASCII 码定长及分隔符文件的转码。P005 支持对转码后的文件进行数据检核。P006 程序具有通用性,只要提供库结构,就可以转相应表的数据。P007 设计上要考虑文件模拟要求,进行少量修改就可以将转

15、码后的文件逆向转为 EBCDIC 码定长文件。表 22.模块的整体结构(1) 模块的整体框图:如图1图 1主控类结果标记文件表定义文件EBCDIC 文件公共配置文件Warn 文件Rej 文件ASCII 文件EBCDIC 文件转码器类型检核模块EBCDIC 文件转码器 厦门大学软件学院 - 10 -(2) 各模块间的调用关系:如图2 主 控+Init() :itReadcond() :it源 文 件 类 公 共 参 数 类转 码 类 类 型 检 核 类 公 共 函 数 RejctFile类NormalFie类Warnig类结 果 标 记 类图 2依据模块总体框图,本模块主要由 10 个子模块组成

16、,按照面向对象的设计原则分为10 个大类:数据处理 主控程序,控制整个处理流程。 转码类,负责处理 EBCDIC 到 ASCII 的转码。 类型检核类,负责源文件特殊值的转换和类型检查。文件操作 源文件类,包括所有对源数据的操作,如读取指定数据等。 表定义类,装入表定义 XML 文件。 公共参数类,负责读取公共参数文件和表定义文件的配置信息,计算各个字段的长度和转码、检核函数。 Normal 文件类,负责写转码后的标准 ASCII 文件 Reject file 类, 如果是主键值字段,只要一个出现解码错误,或者主键值字段为空,则 reject 这条记录,并记录 Reject file。EBCD

17、IC 文件转码器 厦门大学软件学院 - 11 - Warning file 类, 对某些规则如有乱字符,造成该字段无法正常转码,结果中输出这些已解出的,并且对这种情况需要记录 Warning File。 结果标记文件类,负责写结果标记文件(3) 模块的整体流程:如图3 装入配置文件和表定义文件, 是根据装入的信息按不同系统计算各个字段转码前后的长度,计算记录的长度 根据计算的长度分配记录转码前后的空间,定位每个字段在该空间的位置 是根据系统不同和数据类型的不同,生成每个字段的转码函数和检核函数 EBCDI文 件装 入 配 置 文 件 和 表 定 义 文 件计 算 记 录 的 长 度定 位 字

18、段 的 空 间 位 置根 据 数 据 类 型 转 码检 核 不 符 合 转 码 规 则 RejctFile或 是WarnigleASCI文件正确图 3EBCDIC 文件转码器 厦门大学软件学院 - 12 -3. 重要的数据结构及公共参数(1) Cobol字段转码前后类型和长度对照表 :(如表3)Cobol Type Name(In Copy Book)Actual Field Bytes in EBCDIC FileCorresponding C/C+ Types(不包括结束符 )ETL Data TypeDescriptionsX(n) N charn VARCHAR(n)N 个由任意字符组

19、成的字符串可以包含中文字符9(n) N Intn INTEGER 由 N 个数字字符(09) 组成的整型值9(n) COMP 1. 当 n 为 14范围内, 占 2 bytes2. 当 n 为 59范围内, 占 4 bytes3. 当 n 为919 返回内,占 8 bytesIntn INTEGER 由 N 个数字字符(09) 组成的整型值采用 COMP 方式进行压缩9(n) COMP-3 n/2 + 1 Intn INTEGER 由 N 个数字字符(09) 组成的整型值采用 COMP-3 方式进行压缩S9(n)V9(m) COMP-3(n+m) / 2 + 1 DoubleN+M+2Deci

20、mal(n, m)由 N 个整数位,M 个小数位组织的精确浮点数,EBCDIC 文件转码器 厦门大学软件学院 - 13 -采用 COMP-3 方式压缩S9(n) COMP-3 (n) / 2 + 1 DoubleN+1Decimal(n, 0) 由 N 个整数位,0 个小数位组织的精确浮点数,采用 COMP-3 方式压缩9(8) CONVDATE逻辑上的日期字段注 : CONVDATE是本模块用来标记该字段需要进行日期转换的标记。DCC 提供的COPYBOOK 中不包含8 CHAR8 CHAR(8) YYYYMMDD或者为 8 个空格, 如果为8 个空格,表明该字段无法正常转换或者无值9(15

21、) COMP-3 CONVTIMESTAMP逻辑上的时间戳字段注 : CONVTIMESTAMP 是本模块用来标记该字段需要进行时间戳转换的标记。DCC提供的COPYBOOK 中不包含8 CHAR17 CHAR(17) YYYYMMDDHHMMSSnnn或者为 15 个空格, 如果为15 个空格,表明该字段无法正常转换或者无值9(9), 也有可能出现以下情况,但依据 9(n), S9(n)V(m)等长度计CHAR(9) CHAR(9) 格式 : HHMMSSnnn(二位时二位分二位秒三位毫EBCDIC 文件转码器 厦门大学软件学院 - 14 -是概率比较小:S9(9), 9(9) Comp,

22、9(9) Comp-3, S9(9) Comp, S9(9) Comp-3UDI 关键标记符 : CONVTIME注 : CONVTIME是本模块用来标记该字段需要进行时间转换的标记。DCC 提供的COPYBOOK 中不包含算公式,如前表秒)或者为 9 个空格, 如果为9 个空格, 表明该字段无法正常转换或者无值类型名称 : TIME类型描叙 : 时间类型表示数据范围 : 只限制于表示时间,24 小时制统一表示为 : 长度为 9 的字符串,例如 : 1) 如时间为下午 8 点 08分 18 秒 001 毫秒,表示为 : 2008180019(6), 也有可能出现以下情况,但是概率比较小:S9(

23、6)UDI 关键标记符 : CONVTIME6注 : CONVTIME6 是本模块用来标记该字段需要进行时间转换的标记,不包含豪秒。依据 9(n), S9(n)V(m)等长度计算公式,如前表CHAR(6) CHAR(6) 格式 : HHMMSS(二位时二位分二位秒) ,24 小时制或者为 6 个空格, 如果为6 个空格, 表明该字段无法正常转换或者无值类型名称 : TIME6类型描叙 : 时间类型表示数据范围 : 只限制于表示时间, 统一表示为 : 长度为 6 的字符串,例如 : 1) 如时间为下午 8 点 08EBCDIC 文件转码器 厦门大学软件学院 - 15 -DCC 提供的COPYBO

24、OK 中不包含分 18 秒,表示为 : 2008189(7), S9(7) Comp-3, 也有可能出现以下情况:S9(7), 9(7) Comp-3UDI 关键标记符 : CONVJULIANDATE注 : CONVJULIANDATE 是本模块用来标记该字段需要进行太阳日转换的标记。DCC提供的COPYBOOK 中不包含依据 9(n), S9(n)V(m)等长度计算公式,如前表CHAR(7) CHAR(7) 格式 : YYYYDDD(四位年三位日子序号,日子序号表示该日子在该年是第几天)或者为 7 个空格, 如果为7 个空格, 表明该字段无法正常转换或者无值类型名称 : JULIANDAT

25、E类型描叙 : 太阳日类型表示数据范围 : 只限制于表示太阳日, 统一表示为 : 长度为 7 的字符串,例如 : 1) 如 2004 年 1月 1 日表示为2004001;2) 如 2004 年 12月 31 日表示为2004366表 3(2) 检核规则定义 :该检核规则中,有缺省值的检核规则定义在参数配置文件中(如表 4)规则编号 检核规则 合法值(可以配置) 应赋缺省值(可配置)EBCDIC 文件转码器 厦门大学软件学院 - 16 -R0000001 源文件长度不是单条记录长度的整数倍,停止转码R0000001 Reject 记录条数超过阀值,停止转码R0000001 Warning 记录

26、条数超过阀值,停止转码R0000001 主键为空,reject 该记录R0000001 数值类型(int,decimal) 存在非数字字符.reject 该记录R0000000 中文字段(COBOL 类型 : X(n) 中有乱字符,造成该字段无法正常转码,整个字段能解多少解多少。结果输出中这些已解出的,并且对这种情况需要记录 Warning File.R0000000 DATE 型转码失败,统一赋值为”99999999”, 记录 warning File“99999999”“00000000”空19000101R0000000 JulianDate 型转码失败,统一赋值为”9999999”,

27、记录warning File“9999999”空1900001R0000000 Time 型转码失败,统一赋值为”999999999”, 记录 warning File“999999999”空000000000R0000000 Time6 型转码失败,统一赋值为”999999”, 记录 warning File“999999”空000000EBCDIC 文件转码器 厦门大学软件学院 - 17 -R0000000 Timestamp 型转码失败 ,统一赋值为”99999999999999999”, 记录 warning File“99999999999999999”空19000101000000

28、000R0000000 Int 型如果为空等合法值,记录 warning File空 0R0000000 Decimal 型记录 warning File空“.”0.0表 4(3) 系统ID:目前系统中,只区分了 EBCDIC 码和 ASCII 码文件,并分别对这两种情况进行处理。如果一个系统有其特定的转码或检核规则的话,就需要单独对其进行处理。此时,程序中就需要系统 ID 来区分处理。当出现这种情况时,需要模型组提供系统 ID 的输入方式。 (可以通过命令行或配置文件提供) (如表 5)ID 系统中英文简称 系统名称 编码1 DCC DCC EBCDIC 码2 CL 国际卡 EBCDIC 码

29、3 IPSS 综合理财 ASCII 码4 CCBSS 证券 ASCII 码5 CMIS CMIS ASCII 码6 ECIF ECIF ASCII 码7 OCRM OCRM ASCII 码8 BDB 票据系统 ASCII 码9 ERP ERP ASCII 码表 5EBCDIC 文件转码器 厦门大学软件学院 - 18 -第三章 详细设计1.EBCDIC文件模拟器(1) 功能定义 : 本模块主要是 EBCDIC 文件公共转码器的逆向转换操作,支持将 ASCII 文件,通过XML Table Definition 格式定义文件,转换成模拟的 EBCDIC 文件。(2) 模块框图:ASCII文件EBC

30、DIC文件EBCDIC文件模拟器XML Table DefinitionWarningFile(采用 DataStage Manager导出的 XML Table Definition 作为 copybook 输入与 EBCDIC 文件公共转码器需要的格式文件一致。EBCDIC 文件转码器 厦门大学软件学院 - 19 -(3) 反转码的处理流程: 装 入 配 置 文 件和 表 定 义 文 件计 算 记 录 长 度 ASCI文 件定 位 记 录 的 位置根 据 记 录 的 类型 执 行 反 转 码程 序 EBCDI文 件反转码的处理流程如下程序:从 SourceFile 中读入 ASC 码记录;

31、当正常结束时,退出;循环,i 从 0 到 m_nColumnTotal,m_nColumnTotal 为记录的总数,读取每个字段If 该字段对应的转码函数指针 mm_pfnDecodeFunction 指向空时;输出错误信息;Else 根据数据的类型 mm_nSqlType 执行相应的转码函数If bRejectFlag (bRejectFlag 为是否产生 reject 的标志)为 false将反转码生成的记录写入要生成的 NormalFile 中循环结束;(4) 反转码函数:根据表 3 定义的数据类型,反转码涉及的主要数据类型有 comp,comp3,整形,时间戳。EBCDIC 文件转码器

32、 厦门大学软件学院 - 20 -我主要编写的函数(如表 1)函数名 输入参数 返回值 函数说明AscDatEbcHexInt char *InDatint InSizechar *OutDatint OutSize返回 0 为成功其他的失败Asc 码转 comp 型在计算机内字符是以 asc 码的形式存放的,comp 型是以十六进制形式压缩存放的。比如 a 对应的十进制的 ASC 码是97,而十六进制的 ASC 码为 61,此函数即当输入字符a时,转换为机内存储的 61,具体方法是先找出字符a对应的十进制的 asc 码,然后将十进制转换为十六进制。AscDatEbcComp3Int char

33、*InDatint InSizechar *OutDatint OutSize返回 0 为成功其他的失败Asc 码转 comp3 整形输入为 Indat,输入长度为 Insize,转后的在内存中的长度为 Insize*2-1, 若是正数最后低四位为c,若是负数最后低四位是d,除去最后的符号位,其余的部分不足的补 0若 Insize 为 8,若输入 123456,则输出应为00 00 00 00 01 23 45 6c。若输入-1234567则输出为 00 00 00 00 12 34 56 7dAscDatEbcComp3Dec char *InDatint InSizechar *OutDa

34、tint OutSize返回 0 为成功其他的失败Asc 码转 comp3 小数此函数和 Asc 转 comp3 整形基本相同, AscDatEbcComp3Dec 对小数的处理方法是去掉小数点,将小数点后的数并入小数点之前的数一同输出,如EBCDIC 文件转码器 厦门大学软件学院 - 21 -若 Insize 为 8,Indat 为 100.00,则输出应为 00 00 00 00 00 10 00 0cAscTimestampEbcComp3 char *InDatint InSizechar *OutDatint OutSize0 成功1 空的时间戳2 错误的时间戳格式Asc 码转时间戳

35、时间戳:104 318 22 19 51 567第一位-1:1表示20,0表示19第2,3位-04:表示yy第4,5,6-318:表示该日在当年的第几天,如:1月1日就是001,12/31就是365或者366第7,8位-22:表示hh第9,10位-19:表示mm第11,12位-51:表示ss第13,14,15位-567:表示nnn毫秒若输入 20041231000000000输出 104366000000000此函数要注意先要根据年份判断出该年是否闰年.函数 CCommonParameter:GetColumnFunction()为根据源系统不同和每个字段的 sqltype 取得其相应的检核函

36、数,主要程序如下: switch (aColumni.mm_nSqlType)case COLUMN_TYPE_CHAR:case COLUMN_TYPE_VARCHAR:aColumni.mm_pfnDecodeFunction = AscEbcDat;break;case COLUMN_TYPE_DECIMAL:switch (aColumni.mm_nUsage )EBCDIC 文件转码器 厦门大学软件学院 - 22 -case COLUMN_COMP_TYPE_NONE:aColumni.mm_pfnDecodeFunction = AscEbcDat;break;case COLUM

37、N_COMP_TYPE_COMP:aColumni.mm_pfnDecodeFunction = EbcHexDblAscDat;RETURNCODE(ERRCODE_REJECT_COLUMN_COMP_TYPE)break;case COLUMN_COMP_TYPE_COMP3:aColumni.mm_pfnDecodeFunction = AscDatEbcComp3Int;break;default:setLastErrMsg2(“column%s unknown COMP type%d! file=%s, line=%d“, aColumni.mm_sName, aColumni.m

38、m_nSqlType, _FILE_, _LINE_);RETURNCODE(ERRCODE_UNKNOWN_COMP_TYPE)break;case COLUMN_TYPE_INTEGER:switch (aColumni.mm_nUsage )case COLUMN_COMP_TYPE_NONE:aColumni.mm_pfnDecodeFunction = AscEbcDat;break;case COLUMN_COMP_TYPE_COMP:aColumni.mm_pfnDecodeFunction = AscDatEbcHexInt;break;case COLUMN_COMP_TYP

39、E_COMP3:aColumni.mm_pfnDecodeFunction = AscDatEbcComp3Int;break;default:EBCDIC 文件转码器 厦门大学软件学院 - 23 -setLastErrMsg2(“column%s unknown COMP type%d! file=%s, line=%d“, aColumni.mm_sName, aColumni.mm_nSqlType, _FILE_, _LINE_);RETURNCODE(ERRCODE_UNKNOWN_COMP_TYPE)break;default:setLastErrMsg2(“column%s un

40、known column type%d! file=%s, line=%d“, aColumni.mm_sName, aColumni.mm_nSqlType, _FILE_, _LINE_);RETURNCODE(ERRCODE_UNKNOWN_COLUMN_TYPE)2. 模块对外提供接口说明及使用举例本章节详细描述本模块对外提供的接口方式(如接口函数)以及使用举例。EBCDIC 文件公共转码器向应用层提供以下接口 : (1) EBCDIC文件公共转码器 (EbctoAsc)运行平台 : AIX输入参数 : EbcAscConv -f ConfigurationFile Source Fi

41、le Name Target Ascii File Name XML CopyBook FileName Table Name Max Warning Times Max Reject Times Warning File Name Reject File Name ResultFileName 其中 : -f ConfigurationFile - EBCDIC 文件公共转码器公共参数配置文件本配置参数可选择,如果不输入本配置参数,则表示采用缺省参数配置文件,缺省文件位于(执行程序同级目录,文件名 EbcAscConv.conf)。Source File Name - EBCDIC 源文件名

42、Target Ascii File Name - ASCII 目标文件名EBCDIC 文件转码器 厦门大学软件学院 - 24 -XML COPYBOOK FileName - COPYBOOK 对应的 XML Table Definition 文件Table Name - 表名称Warning File Name - 转码警告文件名Max Warning Times - 最大允许的转码警告次数(可以为次数,也可以是百分比,是整型数 则表示是次数,是小数 则表示是百分比,乘以文件记录数可以得到最大警告次数)Max Reject Times - 最大允许的转码拒绝次数(可以为次数,也可以是百分比,

43、是整型数 则表示是次数,是小数 则表示是百分比,乘以文件记录数可以得到最大警告次数)Reject File Name - 拒绝文件名ResultFileName - 结果标准文件本应用程序主要是面向应用层(任务调度器)启动一种基于命令行的 EBCDIC 文件解码,支持DCC 和国际卡两个系统返还的数据文件。返回参数(整型数) : 00000 - 处理成功, 指正常运行,并生成解码后 ASCII 文件。20100 - 源数据文件%s 文件名不存在或无法读取20101 - 目标文件%s 文件名无法创建或写失败20102 - 转码警告文件%s 文件名无法创建或写失败20103 - COPYBOOK

44、文件%s 文件名不存在或无法读取20104 - COPYBOOK 文件%s 文件名格式错误,详细错误%s20105 - 表定义在 XML COPYBOOK 文件%s 文件名中不存在20106 - 源数据文件格式错误,源数据文件不是单条记录长度%d的整数倍(2)EBCDIC文件模拟器(EbcSimulator)运行平台 : EBCDIC 文件转码器 厦门大学软件学院 - 25 -AIX输入参数 : EbcSimulator ASCII Source File Name Target EBCDIC File Name Table Name XML COPYBOOK FileName Warning

45、 File Name其中 : ASCII Source File Name - ASCII 源文件名Target EBCDIC File Name - EBCDIC 目标文件名XML COPYBOOK FileName - EBCDIC 源文件对应的 COPYBOOK 文件Table Name - 表名称Warning File Name - 模拟程序转码警告文件名本应用程序主要是面向测试人员提供一个基于命令行的 EBCDIC 文件模拟程序,支持模拟DCC 和国际卡两个系统返还的 EBCDIC 数据文件。返回参数(整型数) : 00000 - 处理成功, 指正常运行,并生成 EBCDIC 文件

46、。20100 - 源数据文件%s 文件名不存在或无法读取20101 - 目标文件%s 文件名无法创建或写失败20102 - 转码警告文件%s 文件名无法创建或写失败20103 - COPYBOOK 文件%s 文件名不存在或无法读取20104 - COPYBOOK 文件%s 文件名格式错误 ,详细错误%s20105 - 表定义在 XML COPYBOOK 文件%s 文件名中不存在20106 - 源数据文件格式错误,源数据文件不是单条记录长度%d的整数倍3. XML解析器(1) xml介绍XML 文件表面上类似于 HTML 文件,都是一种标记文件,都可以编写页面,但不同的是 XML 文件更广泛的使

47、用在数据处理方面。XML 文件就是数据库,它是数据的集合。在许多方面看起来它和其他文件没什么区别,无论如何,每个文件都含有某种类型的数据。作为一种“数据库”格式,XML 有一些优势:例如,它是自描述的(所用的标记描述了EBCDIC 文件转码器 厦门大学软件学院 - 26 -数据的结构和类型,尽管缺乏语义) ,可交换的(portable)(Unicode) ,能够以树型或图形结构描述数据。同样它也有缺点,例如,它显得有些繁琐,由于要对它进行解析和文本转换,所以数据访问速度较慢。因此,在数据量小、用户少和性能要求不太高的环境下,可以将 XML 文档用作数据库,但是却不适用于用户量大、数据集成度高以及性能要求高的作业环境。以数据为中心的文档就是将 XML 用作数据的传输载体,只提供给机器消费的文档。 以数据为中心的文档的特点是结构相当规整,数据粒度精细(即最小的独立数据单位只存在于 PCDATA 元素或属性这一级别),很少或没有混合内容。除非在对文档进行验证的时候,同级元素或 PCDATA 的出现次序一般来说并不重要。 以数据为中心的文档中的这类数据可以来自数据库(此时要输入给 XML

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报