You're welcome.
Yes, all printable blanks from CharVar1 will be found in CharVar2, unless CharVar2 was previously defined with an insufficient length to accommodate all characters contained in the function result. By default, CharVar2 is given the length of CharVar1 (which will always be sufficient, because the length of the function result is less than or equal to that length).
In the expression compress(CharVar2) all blanks will be removed. The assignment to variable CharVar3, however, may "create" trailing blanks, depending on the length of CharVar3. For example, if CharVar2 is a character variable of length 5 and it contains the string 'a b' (i.e. one blank between 'a' and 'b' and the two unavoidable trailing blanks because of its length 5) and CharVar3 has not been assigned a length before, CharVar3 will be created as a character variable of the same length as CharVar2, i.e. length 5, containing the string 'ab' and three trailing blanks. Nevertheless, the equation CharVar3='ab' holds, because trailing blanks are ignored in string comparisons.
... View more