DECLARE FUNCTION RLDecode$ (i AS STRING) DECLARE FUNCTION RLEncode$ (i AS STRING) DIM initial AS STRING, encoded AS STRING, decoded AS STRING INPUT "Type something: ", initial encoded = RLEncode(initial) decoded = RLDecode(encoded) PRINT initial PRINT encoded PRINT decoded FUNCTION RLDecode$ (i AS STRING) DIM Loop0 AS LONG, rCount AS STRING, outP AS STRING, m AS STRING FOR Loop0 = 1 TO LEN(i) m = MID$(i, Loop0, 1) SELECT CASE m CASE "0" TO "9" rCount = rCount + m CASE ELSE IF LEN(rCount) THEN outP = outP + STRING$(VAL(rCount), m) rCount = "" ELSE outP = outP + m END IF END SELECT NEXT RLDecode$ = outP END FUNCTION FUNCTION RLEncode$ (i AS STRING) DIM tmp1 AS STRING, tmp2 AS STRING, outP AS STRING DIM Loop0 AS LONG, rCount AS LONG tmp1 = MID$(i, 1, 1) tmp2 = tmp1 rCount = 1 FOR Loop0 = 2 TO LEN(i) tmp1 = MID$(i, Loop0, 1) IF tmp1 <> tmp2 THEN outP = outP + LTRIM$(RTRIM$(STR$(rCount))) + tmp2 tmp2 = tmp1 rCount = 1 ELSE rCount = rCount + 1 END IF NEXT outP = outP + LTRIM$(RTRIM$(STR$(rCount))) outP = outP + tmp2 RLEncode$ = outP END FUNCTION