Sorting Array (SORTA) opcode for ARRAY in RPG AS400 |
Coding SORTA opcode in RPG Fixed Format
SORTA opcode is used to sort the array elements in the RPG program. We can use this opcode to sort an Array or a DS array but in this blog, we will discuss sort an Array only.
Coding SORTA opcode in RPG fixed format to Sort an Array
DArray S 1A DIM(5) C EVAL ARRAY(1) = 'X' C EVAL ARRAY(2) = 'A' C EVAL ARRAY(3) = 'C' C EVAL ARRAY(4) = 'B' C EVAL ARRAY(5) = 'R' C SORTA ARRAY C ARRAY(1) DSPLY C ARRAY(2) DSPLY C ARRAY(3) DSPLY C ARRAY(4) DSPLY C ARRAY(5) DSPLY C SETON LR
Output
The array has been sorted in Ascending order as can be seen from the below output.
DSPLY A DSPLY B DSPLY C DSPLY R DSPLY X
Using SORTA opcode to Sort an Array in RPG /Free and Fully Free Format
SORTA operation with operation extender A(Ascending) or D(Descending) can be specified to sort array in ascending or descending order accordingly.
SORTA(A/D) arrayname
Coding SORTA(A/D) opcode in /FREE and Fully free format RPGLE
Let's take an example where we have 3 arrays to be sorted.
RPG Code in /Free format for SORTA (sort an Array) in RPGLE AS400
DArray1 S 1A DIM(5) ASCEND DArray2 S 1A DIM(5) DESCEND DArray3 S 1A DIM(5) /Free ARRAY1(1) = 'X'; ARRAY1(2) = 'A'; ARRAY1(3) = 'C'; ARRAY1(4) = 'B'; ARRAY1(5) = 'R'; SORTA Array1; DSPLY ARRAY1(1); DSPLY ARRAY1(2); DSPLY ARRAY1(3); DSPLY ARRAY1(4); DSPLY ARRAY1(5); ARRAY2(1) = 'X'; ARRAY2(2) = 'A'; ARRAY2(3) = 'C'; ARRAY2(4) = 'B'; ARRAY2(5) = 'R'; SORTA Array2; DSPLY ARRAY2(1); DSPLY ARRAY2(2); DSPLY ARRAY2(3); DSPLY ARRAY2(4); DSPLY ARRAY2(5); ARRAY3(1) = 'X'; ARRAY3(2) = 'A'; ARRAY3(3) = 'C'; ARRAY3(4) = 'B'; ARRAY3(5) = 'R'; SORTA(D) Array3; DSPLY ARRAY3(1); DSPLY ARRAY3(2); DSPLY ARRAY3(3); DSPLY ARRAY3(4); DSPLY ARRAY3(5); *INLR = *ON; /End-Free
RPG Code in Fully Free format for SORTA (sort an Array) in RPGLE AS400
**FREE ctl-opt debug(*yes); ctl-opt Option(*NoDebugio); dcl-s Array1 char(1) DIM(5) Ascend; dcl-s Array2 char(1) DIM(5) Descend; dcl-s Array3 char(1) DIM(5); ARRAY1(1) = 'X'; ARRAY1(2) = 'A'; ARRAY1(3) = 'C'; ARRAY1(4) = 'B'; ARRAY1(5) = 'R'; SORTA Array1; DSPLY ARRAY1(1); DSPLY ARRAY1(2); DSPLY ARRAY1(3); DSPLY ARRAY1(4); DSPLY ARRAY1(5); ARRAY2(1) = 'X'; ARRAY2(2) = 'A'; ARRAY2(3) = 'C'; ARRAY2(4) = 'B'; ARRAY2(5) = 'R'; SORTA Array2; DSPLY ARRAY2(1); DSPLY ARRAY2(2); DSPLY ARRAY2(3); DSPLY ARRAY2(4); DSPLY ARRAY2(5); ARRAY3(1) = 'X'; ARRAY3(2) = 'A'; ARRAY3(3) = 'C'; ARRAY3(4) = 'B'; ARRAY3(5) = 'R'; SORTA(D) Array3; DSPLY ARRAY3(1); DSPLY ARRAY3(2); DSPLY ARRAY3(3); DSPLY ARRAY3(4); DSPLY ARRAY3(5); *INLR = *ON;
Related Post
Read also :
- Array and Types of Array in RPG AS400
- Compile Time Array in RPG AS400
- Using PERRCD keyword in compile Time Array in RPG AS400
- Run Time Array in RPG AS400
- Pre-Run Time Array in RPG AS400
- Lookup an Array element in RPGLE AS400
- XFOOT opcode for ARRAY in RPG AS400
- Using keywords QUALIFIED, LIKEDS, and DIM with data structures
- Array Data Structures in RPG AS400