Skip to main content

The PadRight() method for strings only seems to work with hard coded numbers.

01 str1 as string value "hello".

01 str2 as string.

set str2 to str1::PadRight(10)   *> this works fine

declare pad as string = 10

set str2 to str1::PadRight(pad)   *> this doesn't work - no trailing spaces in returned string

Am I doing this wrong or is this a bug?


#stringspacespadding
#VisualCobolManaged

The PadRight() method for strings only seems to work with hard coded numbers.

01 str1 as string value "hello".

01 str2 as string.

set str2 to str1::PadRight(10)   *> this works fine

declare pad as string = 10

set str2 to str1::PadRight(pad)   *> this doesn't work - no trailing spaces in returned string

Am I doing this wrong or is this a bug?


#stringspacespadding
#VisualCobolManaged

Edit: The line should read:

declare pad as binary-long = 10

which is what I have in my code. I just typed it wrong in my post.


The PadRight() method for strings only seems to work with hard coded numbers.

01 str1 as string value "hello".

01 str2 as string.

set str2 to str1::PadRight(10)   *> this works fine

declare pad as string = 10

set str2 to str1::PadRight(pad)   *> this doesn't work - no trailing spaces in returned string

Am I doing this wrong or is this a bug?


#stringspacespadding
#VisualCobolManaged

Hi Randy, I tried compiling and running the following:

      01 str1 string value "hello".

      01 str2 string.

          set str2 to str1::PadRight(10)   *> this works fine

          display str2

          declare pad as binary-long = 10

          set str2 to str1::PadRight(pad)   *> this doesn't work - no trailing spaces in returned string

          display str2

Both of the display statements  showed "hello" followed by 5 spaces.  I think this is correct behaviour as the PadRight adds spaces up to the total length specified by the parameter.