COBOL parsing command-line options

Sample to parse command-line options


Command line option syntax: "ab:c:"

- a: a switch option

- b/c: has a option value

For example:

PROG -a

PROG -b b_value

PROG -a -b b_value -c v_value.



Program Codes:

       IDENTIFICATION DIVISION.

       PROGRAM-ID. COMMANDLINE.


       DATA DIVISION.

       WORKING-STORAGE SECTION.

       01 ARG-OPTION         PIC X(20) VALUE SPACES.

          88 ARG-A           VALUES "-a".

          88 ARG-B           VALUES "-b", "--bbbb".

          88 ARG-C           VALUES "-c", "--cccc".

       01 ARG-VALUE.

          05 VALUE-A   PIC X(1)    VALUE "N".

          05 VALUE-B   PIC X(10)   VALUE SPACES.

          05 VALUE-C   PIC X(10)   VALUE SPACES.


       PROCEDURE DIVISION.

*     * PARSE ARGS ONE-BY-ONE

           ACCEPT ARG-OPTION FROM ARGUMENT-VALUE

           PERFORM UNTIL ARG-OPTION = SPACES

               EVALUATE TRUE

               WHEN ARG-A

                   MOVE "Y"    TO VALUE-A

               WHEN ARG-B

                   ACCEPT VALUE-B FROM ARGUMENT-VALUE

               WHEN ARG-C

                   ACCEPT VALUE-C FROM ARGUMENT-VALUE

               WHEN OTHER

                 DISPLAY "INVALID SWITCH: " ARG-OPTION

               END-EVALUATE

               MOVE SPACES TO ARG-OPTION

               ACCEPT ARG-OPTION FROM ARGUMENT-VALUE

           END-PERFORM

*     * PRINT ARGS ONE-BY-ONE

           display "ARG:a=[" VALUE-A "]".

           display "ARG:b=[" VALUE-B "]".

           display "ARG:c=[" VALUE-C "]".

*     * PARSE ARGS LINE

           ACCEPT ARG-OPTION FROM COMMAND-LINE

           DISPLAY "ARGS:=[" ARG-OPTION "]".

           GOBACK.


Executing Result:

$ COMMANDLINE -a -b bb -c cc

ARG:a=[Y]

ARG:b=[bb        ]

ARG:c=[cc        ]

ARGS:=[-a -b bb -c cc      ]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值