一个生成COBOL测试数据的小程序——分析COBOL中数据声明的语句

一般开发中,我们都使用COPY句导入记录的数据结构(以下简称COPY句),所以写这个小程序时肯定会涉及到COPY句的分析。

所以挽起袖子,来做最基础的

000100     03  レコード.
000200       05  レコード種別                  PIC  9(3).
000300       05  XX番号                      PIC  9(4)   COMP.
000400       05  XX番号           
000500           PIC  S9(3)  COMP-3.
000600       05  XXX種別                    PIC  N(10).
000700       05  XXX号                      PIC  S9(3)  COMP-3 OCCURS 2 TIMES.
000800       05  XXXX種別                  PIC  X(1)   OCCURS 4 TIMES..
000900       05  XXX番号                    PIC  S9(3)  COMP-3.
001000       05  レコード識別情報              PIC  S9(1)  COMP-3.
001100       05  SWXXX1                  PIC  1(1)   BIT.
001200       05  SWXXX2                  PIC  1(1)   BIT.
001300       05  SWXXX3                  PIC  1(1)   BIT.
001400       05  あき04                      PIC  1(1)   BIT.
001500       05  あき05                      PIC  1(1)   BIT.
001600       05  あき06                      PIC  1(1)   BIT.
001700       05  あき07                      PIC  1(1)   BIT.
001800       05  あき08                      PIC  1(1)   BIT.
001900       05  あああ OCCURS 5 TIMES.
002000           07  はは                      PIC  X(1).
002100           07  わわ                      PIC  X(2).
002200       05  いいい REDEFINES XXX種別.
002300           07  らら                      PIC  X(20).
002400       05  XXXXXNO                PIC  S9(05) COMP-3.

以上是一个COPY句的例子,这个例子基本上包括了所有常用的数据类型和常见的情况,可以拿这个来测试分析的是否正确。

通过例子可以观察到,前7列都是无用的,所以可以先将前面7列切掉。而COBOL的语句是以句点为结尾,所以在COBOL中可以尽情的换行、折行,这样分析语句时也就应该是以句点作为结束。

至于怎么来分析数据类型,还是先把语句读出来并处理成一个好的格式再说吧……

基本思想是这样,读一行,先把多余的空格去掉,让每段描述符之间都只有一个空格。如果遇到句点,用SPLIT把语句按空格分块,保存到一个String数组里,然后把String数组塞到一个Collection中,OK,这样一条记录就处理完毕。

代码如下:

 

Public   Sub  Analysis(file  As   String )
Dim  Data  As   String
Dim  temp  As   String
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值