INCLUDE "D2:SORT.ACT" ;from the Action! Tool Kit PROC PrintArray(INT ARRAY a INT size) INT i Put('[) FOR i=0 TO size-1 DO IF i>0 THEN Put(' ) FI PrintI(a(i)) OD Put(']) PutE() RETURN PROC RemoveDuplicates(INT ARRAY src INT srcLen INT ARRAY dst INT POINTER dstLen) INT i CHAR curr,prev IF srcLen=0 THEN dstLen^=0 RETURN FI SortI(src,srcLen,0) dst(0)=src(0) dstLen^=1 prev=src(0) FOR i=1 TO srcLen-1 DO curr=src(i) IF curr#prev THEN dst(dstLen^)=curr dstLen^==+1 FI prev=curr OD RETURN PROC Test(INT ARRAY src INT srcLen) INT ARRAY dst(100) INT dstLen PrintE("Input array:") PrintArray(src,srcLen) RemoveDuplicates(src,srcLen,dst,@dstLen) PrintE("Unique items:") PrintArray(dst,dstLen) PutE() RETURN PROC Main() INT ARRAY src1(9)=[1 3 65534 0 12 1 65534 52 3] INT ARRAY src2(26)=[3 2 1 3 2 5 2 1 6 3 4 2 5 3 1 5 3 5 2 1 3 7 4 5 7 6] INT ARRAY src3(1)=[6502] Put(125) PutE() ;clear screen Test(src1,9) Test(src2,26) Test(src3,1) RETURN