32 lines
891 B
Plaintext
32 lines
891 B
Plaintext
FUNCTION findCommonDir RETURNS CHAR(
|
|
i_cdirs AS CHAR,
|
|
i_cseparator AS CHAR
|
|
):
|
|
|
|
DEF VAR idir AS INT.
|
|
DEF VAR idepth AS INT.
|
|
DEF VAR cdir AS CHAR EXTENT.
|
|
DEF VAR lsame AS LOGICAL INITIAL TRUE.
|
|
DEF VAR cresult AS CHAR.
|
|
|
|
EXTENT( cdir ) = NUM-ENTRIES( i_cdirs, '~n' ).
|
|
|
|
DO idir = 1 TO NUM-ENTRIES( i_cdirs, '~n' ):
|
|
cdir[ idir ] = ENTRY( idir, i_cdirs, '~n' ).
|
|
END.
|
|
|
|
DO idepth = 2 TO NUM-ENTRIES( cdir [ 1 ], i_cseparator ) WHILE lsame:
|
|
DO idir = 1 TO EXTENT( cdir ) - 1 WHILE lsame:
|
|
lsame = (
|
|
ENTRY( idepth, cdir [ idir ], i_cseparator ) =
|
|
ENTRY( idepth, cdir [ idir + 1 ], i_cseparator )
|
|
).
|
|
END.
|
|
IF lsame THEN
|
|
cresult = cresult + i_cseparator + ENTRY( idepth, cdir [ 1 ], i_cseparator ).
|
|
END.
|
|
|
|
RETURN cresult.
|
|
|
|
END FUNCTION.
|