Thanks for all your reply. At meantime because of your generosity I was able to come up a quick way of parsing out unnecessary characters from a field. Here's what I did just for
a starter. The routine will remove any characters rather than numerics.
my WS:
01 AMG-STRING-ROUTINE.
02 AMG-INP-LENGTH PIC 9(3) VALUE ZEROES.
02 AMG-OUT-LENGTH PIC 9(3) VALUE ZEROES.
02 AMG-INPUT-DATA PIC X(100) VALUE SPACES.
02 AMG-STRING-DATA PIC X(100) VALUE SPACES.
02 AMGPT1 PIC 9(3) VALUE ZEROES.
02 AMGPT2 PIC 9(3) VALUE ZEROES.
02 AMG-VALID-NUM PIC X(1) VALUE SPACES.
88 AMG-VALID-NUMBERS VALUE "0","1","2","3","4",
"5","6","7","8","9".
Here's the procedure.
INITIALIZE AMG-STRING-ROUTINE
MOVE 15 TO AMG-INP-LENGTH
MOVE 14 TO AMG-OUT-LENGTH
MOVE PEM-HM-PHONE-NBR TO AMG-INPUT-DATA
PERFORM 1041-STRING-ROUTINE
THRU 1041-ROUTINE-END
MOVE AMG-STRING-DATA(1:14) TO AMG-HM-PHONE-NBR.
Here's that routine:
*****************************************************************
* Routine to remove non-numeric characters in a field. *
* Resulting output is all numeric. *
*****************************************************************
1041-STRING-ROUTINE.
*****************************************************************
MOVE 0 TO AMGPT1.
MOVE 0 TO AMGPT2.
1041-ROUTINE-START.
ADD 1 TO AMGPT1.
IF (AMGPT1 > AMG-INP-LENGTH)
OR (AMGPT2 > AMG-OUT-LENGTH)
GO TO 1041-ROUTINE-END.
MOVE INPUT-DATA(AMGPT1:1) TO AMG-VALID-NUM.
IF (NOT AMG-VALID-NUMBERS)
GO TO 1041-ROUTINE-START.
ADD 1 TO AMGPT2.
IF (AMGPT2 > AMG-OUT-LENGTH)
GO TO 1041-ROUTINE-END.
MOVE AMG-INPUT-DATA(AMGPT1:1) TO AMG-STRING-DATA(AMGPT2:1).
GO TO 1041-ROUTINE-START.
1041-ROUTINE-END.
NOTE: I know there is a better way doing of this (by looping)
but this is my first attempt and it works. The next
routine I'm going to built is for all characters.
Thanks everyone.