I need to convert Numbers stored as Text datatype(left aligned) ranging from 2 to 4 digits to Numeric format(Right aligned) in Mainframes.
For eg,
Field1(Text left aligned) Field2(Numeric Right aligned)
---------------------------------------------------------------
1000 1000
11 11
200 200
Can use SORT EZTRIEVE COBOL.
For a COBOL solution, try using UNSTRING
and a JUSTIFIED RIGHT
receiving field. Here is an example program (IBM Enterprise COBOL) to illustrate.
IDENTIFICATION DIVISION.
PROGRAM-ID. EXAMPLE1.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 SOURCE-DATA PIC X(4).
01 DEST-DATA PIC X(4) JUSTIFIED RIGHT.
PROCEDURE DIVISION.
MOVE '123' TO SOURCE-DATA
UNSTRING SOURCE-DATA DELIMITED BY SPACE
INTO DEST-DATA
DISPLAY 'SOURCE >' SOURCE-DATA '<'
DISPLAY 'DEST >' DEST-DATA '<'
MOVE '1' TO SOURCE-DATA
UNSTRING SOURCE-DATA DELIMITED BY SPACE
INTO DEST-DATA
DISPLAY 'SOURCE >' SOURCE-DATA '<'
DISPLAY 'DEST >' DEST-DATA '<'
GOBACK
.
The output from this program is:
SOURCE >123 <
DEST > 123<
SOURCE >1 <
DEST > 1<