Z
zgj_gd
Unregistered / Unconfirmed
GUEST, unregistred user!
我想用delphi来拆以下报文:
{1:172970 12 20061118143150100 }{3::30A:20061230:0BC:100004:CC5:402603000010:59C:508013010007669:59A:中山市三乡镇大飞象有限公司21:40258101001723:10010111010000029122:个支一:32A:RMB6004701:00000793849435:2006122336:2006123030:37:测试38:41:034:20061118:BS6:20070101:BS4:0A0:00}{C: }
其实这是全国支票影像系统的报文,我想用delphi来拆包,但时间比较紧。没空细想了。大家帮个忙吧。给点思路或函数。如何拆包?
说明:
报头用于标识报文来源去向、处理方式、报文类型、长度。
相对位移 长度 属性 名称 值域 说明
0 3 X 块标识 {1:
3 6 N 报文长度 表示整个报文的长度
9 1 N 报文用途 0,1,2 预留
10 1 N 提出/提入标记 0,1 0:提出 1:提入
11 1 N 业务类型 0,1,2,3
12 3 N 业务状态码
15 8 N 报文标识号 通讯层作为报文的唯一标识
23 20 N 报文参考号
43 14 N 发送时间 Yyyymmddhhmmss
57 3 N 报文类型
60 8 N 工作日期 当前工作日
68 1 X 结束标识 }
正文体结构
影像交换系统正文体使用和大小额支付系统相同的编码方法,即TAG码标注定位法。正文体块由{3:作块前导符,由}作块结束符,其间是一个或多个由TAG码与TAG值对构成的报文域,TAG码由两个:定界,其后紧跟相应的TAG值,其格式如下图:
{3::TAG:VAL:TAG:VAL:TAG:VAL……:TAG:VAL}
不同的业务,其正文体的组成报文域(TAG码值对)也不相同,具体参见报文格式章节的描述。
 报文域
组成正文体的报文域有必选项(Mandatory)和可选项(Optional)两种,必选项必须出现在正文体中,可选项则根据业务数据实际情况,可能出现,也可能不出现。除标明可重复的报文域外,每个报文域在只会正文体中出现一次。报文域在正文体出现的顺序是不确定的,解析报文时应根据TAG确定其相应的TAG值。
正文体报文域内容除指明是空域外,不能是全空格,不能包含半角“:”(冒号),“%”(百分号),不能以CR(回车符0x0a)、LF(换行符0x0d)、“,”(逗号)、“.”(句号)、“-”(连线符)开始,“/”(斜线)必须按域说明中的规定使用。如果域内容为多行,除第一行以外,以(cr)(lf)指明一个新行的开始。
 子域
如果报文域包含子域,则各子域必须按固定的格式、长度及顺序摆放。强制项子域不能是全空格,可选项子域必须使用全空格补位。如果子域值长度不足,也必须进行补位处理:数值型子域(n)前补0;字符型子域(x)后补空格;行号型子域(n)后补空格;全角型子域(G)后补全角空格。
4.4.3 报尾
报尾存放报文的校验信息。其格式如下:
英文简称 相对位移 长度 属性 名称 值域 说明
blockMark 0 3 c 块标识 {C:
checkSum 3 32 c 检验码 校验算法由CIS系统定义
finalMark 35 1 x 结束标识 }
{1:172970 12 20061118143150100 }{3::30A:20061230:0BC:100004:CC5:402603000010:59C:508013010007669:59A:中山市三乡镇大飞象有限公司21:40258101001723:10010111010000029122:个支一:32A:RMB6004701:00000793849435:2006122336:2006123030:37:测试38:41:034:20061118:BS6:20070101:BS4:0A0:00}{C: }
其实这是全国支票影像系统的报文,我想用delphi来拆包,但时间比较紧。没空细想了。大家帮个忙吧。给点思路或函数。如何拆包?
说明:
报头用于标识报文来源去向、处理方式、报文类型、长度。
相对位移 长度 属性 名称 值域 说明
0 3 X 块标识 {1:
3 6 N 报文长度 表示整个报文的长度
9 1 N 报文用途 0,1,2 预留
10 1 N 提出/提入标记 0,1 0:提出 1:提入
11 1 N 业务类型 0,1,2,3
12 3 N 业务状态码
15 8 N 报文标识号 通讯层作为报文的唯一标识
23 20 N 报文参考号
43 14 N 发送时间 Yyyymmddhhmmss
57 3 N 报文类型
60 8 N 工作日期 当前工作日
68 1 X 结束标识 }
正文体结构
影像交换系统正文体使用和大小额支付系统相同的编码方法,即TAG码标注定位法。正文体块由{3:作块前导符,由}作块结束符,其间是一个或多个由TAG码与TAG值对构成的报文域,TAG码由两个:定界,其后紧跟相应的TAG值,其格式如下图:
{3::TAG:VAL:TAG:VAL:TAG:VAL……:TAG:VAL}
不同的业务,其正文体的组成报文域(TAG码值对)也不相同,具体参见报文格式章节的描述。
 报文域
组成正文体的报文域有必选项(Mandatory)和可选项(Optional)两种,必选项必须出现在正文体中,可选项则根据业务数据实际情况,可能出现,也可能不出现。除标明可重复的报文域外,每个报文域在只会正文体中出现一次。报文域在正文体出现的顺序是不确定的,解析报文时应根据TAG确定其相应的TAG值。
正文体报文域内容除指明是空域外,不能是全空格,不能包含半角“:”(冒号),“%”(百分号),不能以CR(回车符0x0a)、LF(换行符0x0d)、“,”(逗号)、“.”(句号)、“-”(连线符)开始,“/”(斜线)必须按域说明中的规定使用。如果域内容为多行,除第一行以外,以(cr)(lf)指明一个新行的开始。
 子域
如果报文域包含子域,则各子域必须按固定的格式、长度及顺序摆放。强制项子域不能是全空格,可选项子域必须使用全空格补位。如果子域值长度不足,也必须进行补位处理:数值型子域(n)前补0;字符型子域(x)后补空格;行号型子域(n)后补空格;全角型子域(G)后补全角空格。
4.4.3 报尾
报尾存放报文的校验信息。其格式如下:
英文简称 相对位移 长度 属性 名称 值域 说明
blockMark 0 3 c 块标识 {C:
checkSum 3 32 c 检验码 校验算法由CIS系统定义
finalMark 35 1 x 结束标识 }