您的位置:首页 > 移动开发 > 微信开发

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

2008-05-15 16:21 609 查看
一般开发中,我们都使用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


Dim flag, flagEnd As Long


Set varData = New Collection


Open file For Input As #1


flagEnd = 0


temp = ""


flag = 0


Do Until EOF(1)


Line Input #1, Data


If Trim(Data) <> "" Then


If Mid(Data, 7, 1) = "*" Then




Else


Data = Right(Data, Len(Data) - 7)


For i = 1 To Len(Data)


oneChar = Mid(Data, i, 1)


If oneChar <> " " Then


If oneChar = "." Then


flagEnd = 1


Else


If temp <> Chr(13) Then


temp = temp & oneChar


flag = 0


End If


End If


Else


If flag = 0 And temp <> "" Then


temp = temp & " "


flag = 1


End If


End If


Next i


End If


If temp <> "" And flagEnd = 1 Then


tmpArr = Split(temp, " ")


varData.Add tmpArr


temp = ""


flagEnd = 0


flag = 0


End If


End If


Loop


Close #1


Explanation


End Sub

Explanation是啥?是分析数据格式的一个过程,改天写分析数据格式时再说明,呵呵。

つづく
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐