-, , , . , , "" . , OUTPUT-STRING , . , SECOND-STRING.
COBOL - ( , ). , "" , . , , , , .
( ).
, @user4341206 , fooobar.com/questions/1633762/....
COBOL 1985 INSPECT , . FUNCTION REVERSE , , INSPECT .
, LENGTH OF FUNCTION LENGTH, ( ( , ), ). .
, ( ), ,
, , INSPECT (, ) , .
, , AcuCOBOL ( Micro Focus COBOL), , TRAILING INSPECT. , COBOL 2014 TRAILING INSPECT.
, , . .
- STRING:
String FIRST-STRING ( 1 : length-field-you-define ) DELIMITED BY SIZE
' ' DELIMITED BY SIZE
SECOND-STRING DELIMITED BY SIZE
INTO OUTPUT-STRING
: BY SIZE, SIZE , .
MOVE :
MOVE FIRST-STRING TO OUTPUT-STRING
( 1 : length-field-you-define )
MOVE SPACE TO OUTPUT-STRING
( length-field-you-define + 1 : 1 )
MOVE SECOND-STRING TO OUTPUT-STRING
( length-field-you-define + 2 : )
( ), .
.
- , :, . , length-field-you-define , , FIRST-STRING - .
:
MOVE FIRST-STRING TO OUTPUT-STRING
( 1 : length-field-you-define )
, ( ), "" .
IF FIRST-STRING EQUAL TO SPACE
PERFORM COPY-SECOND-STRING-ONLY
ELSE
PERFORM CONCATENATE-FIRST-AND-SECOND
END-IF
...
COPY-SECOND-STRING-ONLY.
MOVE SECOND-STRING TO OUTPUT-STRING
.
CONCATENATE-FIRST-AND-SECOND.
calculate length
MOVE FIRST-STRING TO OUTPUT-STRING
( 1 : length-field-you-define )
MOVE SPACE TO OUTPUT-STRING
( length-field-you-define + 1 : 1 )
MOVE SECOND-STRING TO OUTPUT-STRING
( length-field-you-define + 2 : )
.
, undefined, "" .
STRING " ", .
"" : ( "" ); , " , "; .
, " " . " " , , , , , , , .
STRING, WITH POINTER. -, FIRST-STRING OUTPUT-STRING ( OUTPUT-STRING ). length-field-you-define ( ) STRING WITH POINTER.
, , , , STRING, WITH POINTER, .
- .
, COBOL . " ODO", , , IBM .
LINKAGE SECTION.
01 L-MAPPING-OF-OUTPUT-STRING.
05 L-MOOS-FIRST-STRING.
10 FILLER OCCURS 0 TO 15 TIMES
DEPENDING ON length-field-you-define.
15 FILLER PIC X.
05 L-MOOS-SEPARATOR-SPACE PIC X.
05 L-MOOS-SECOND-STRING PIC X(15).
...
SET ADDRESS OF L-MAPPING-OF-OUTPUT-STRING
TO ADDRESS OF
OUTPUT-STRING
MOVE FIRST-STRING TO L-MOOS-FIRST-STRING
MOVE SPACE TO L-MOOS-SEPARATOR-SPACE
MOVE SECOND-STRING TO L-MOOS-SECOND-STRING
, -. , , ( ) .
, PROCEDURE DIVISION : ; MOVE.
, , .