Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
60
Task/Align-columns/OpenEdge-Progress/align-columns.openedge
Normal file
60
Task/Align-columns/OpenEdge-Progress/align-columns.openedge
Normal 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.
|
||||
Loading…
Add table
Add a link
Reference in a new issue