Pages

Thursday, June 24, 2021

Case conversion (%LOWER & %UPPER) in RPGLE - IBM i

Case Conversion

Built-In Function %XLATE has been very useful to convert the string from lowercase to uppercase and vice versa.

With the introduction of BIFs %LOWER (Convert to Lowercase) and %UPPER (Convert to Uppercase), this has been made much easier.*

%LOWER (Convert to Lowercase)

%LOWER converts the string passed (first operand) to lowercase. Part of the string can be converted to lower case by specifying optional start position and length operands.  

Syntax

%LOWER(string : start_position : length)

%UPPER (Convert to Uppercase)

%UPPER converts the string passed (first operand) to uppercase. Part of the string can be converted to upper case by specifying optional start position and length operands.  

Syntax

%UPPER(string : start_position : length)

Let's have a look at the example to understand these better. 

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

**Free

 

Dcl-S MixedCaseString Char(10) Inz('UpPeRcaSE') ;

Dcl-S LowerCaseString Char(10) ;

Dcl-S UpperCaseString Char(10) ;

 

// Converting the full string to lowercase

LowerCaseString = %Lower('LOWERCASE'); //lowercase

Dsply LowerCaseString ;

 

// Converting the portion of a string to lowercase

LowerCaseString = %Lower('LOWERCASE' : 2); //Lowercase

Dsply LowerCaseString ;

 

// Converting the portion of a string to lowercase

LowerCaseString = %Lower('LOWERCASE' : 2 : 4); //LowerCASE

Dsply LowerCaseString ;

 

// Converting the string to uppercase

UpperCaseString = %Upper(MixedCaseString); //UPPERCASE

Dsply UpperCaseString ;

 

*InLr = *On ;


In the above example, 
  • Line - 8: We are passing the string (in uppercase) to BIF %LOWER without any optional parameters.
    • This would convert the full string to lowercase. 
  • Line - 12: We are passing the string (in uppercase) to BIF %LOWER with an optional parameter 'start position'.
    • This would convert the string from start position till end of the string.
  • Line - 16: We are passing the string (in uppercase) to BIF %LOWER with both the optional parameters 'start position' and 'length'. 
    • This would convert the string from start position till the number of characters mentioned in the length parameter. 
    • Remaining string would be unchanged. 
  • Line - 20: We are passing a variable (with string in both lowercase and uppercase letters) to BIF %UPPER without any optional parameters. 
    • This would convert the full string to uppercase. 
  • Similar to the BIF %LOWER, Optional parameters can be used with %UPPER to convert part of the string to uppercase. 

*These Built-in Functions are only available since IBM i 7.4 TR4 and IBM i 7.3 TR 10.

If you have any Suggestions or Feedback, Please leave a comment below or use Contact Form. 

No comments:

Post a Comment

Popular Posts