Initial data commit

This commit is contained in:
Ingy döt Net 2023-07-01 11:58:00 -04:00
parent 72d218235f
commit f23f22d71c
199087 changed files with 3378941 additions and 0 deletions

View file

@ -0,0 +1,60 @@
FUNCTION alignColumns RETURNS CHAR (
i_c AS CHAR,
i_calign AS CHAR
):
DEF VAR ipass AS INT.
DEF VAR iline AS INT.
DEF VAR icol AS INT.
DEF VAR iwidth AS INT EXTENT.
DEF VAR cword AS CHAR.
DEF VAR cspace AS CHAR.
DEF VAR cresult AS CHAR.
EXTENT( iwidth ) = NUM-ENTRIES( ENTRY( 1, i_c, "~n" ), "$" ).
DO ipass = 0 TO 1:
DO iline = 1 TO NUM-ENTRIES( i_c, "~n" ):
DO icol = 1 TO NUM-ENTRIES( ENTRY( iline, i_c, "~n" ), "$" ):
cword = ENTRY( icol, ENTRY( iline, i_c, "~n" ), "$" ).
IF ipass = 0 THEN
iwidth = MAXIMUM( LENGTH( cword ), iwidth[ icol ] ).
ELSE DO:
cspace = FILL( " ", iwidth[ icol ] - LENGTH( cword ) ).
CASE i_calign:
WHEN "left" THEN cresult = cresult + cword + cspace.
WHEN "right" THEN cresult = cresult + cspace + cword.
WHEN "center" THEN DO:
cword = FILL( " ", INTEGER( LENGTH( cspace ) / 2 ) ) + cword.
cresult = cresult + cword + FILL( " ", iwidth[icol] - LENGTH( cword ) ).
END.
END CASE. /* i_calign */
cresult = cresult + " ".
END.
END. /* DO icol = 1 TO ... */
IF ipass = 1 THEN
cresult = cresult + "~n".
END. /* DO iline = 1 TO ... */
END. /* DO ipass = 0 TO 1 */
RETURN cresult.
END FUNCTION.
DEF VAR cc AS CHAR.
cc = SUBSTITUTE(
"&1~n&2~n&3~n&4~n&5~n&6",
"Given$a$text$file$of$many$lines,$where$fields$within$a$line$",
"are$delineated$by$a$single$'dollar'$character,$write$a$program",
"that$aligns$each$column$of$fields$by$ensuring$that$words$in$each$",
"column$are$separated$by$at$least$one$space.",
"Further,$allow$for$each$word$in$a$column$to$be$either$left$",
"justified,$right$justified,$or$center$justified$within$its$column."
).
MESSAGE
alignColumns( cc, "left" ) SKIP
alignColumns( cc, "right" ) SKIP
alignColumns( cc, "center" )
VIEW-AS ALERT-BOX.