41 lines
597 B
Text
41 lines
597 B
Text
|
|
#COMPILE EXE
|
||
|
|
#COMPILER PBWIN 9.05
|
||
|
|
#DIM ALL
|
||
|
|
|
||
|
|
FUNCTION ROT13(BYVAL a AS STRING) AS STRING
|
||
|
|
LOCAL p AS BYTE PTR
|
||
|
|
LOCAL n AS BYTE, e AS BYTE
|
||
|
|
LOCAL res AS STRING
|
||
|
|
|
||
|
|
res = a
|
||
|
|
p = STRPTR(res)
|
||
|
|
n = @p
|
||
|
|
DO WHILE n
|
||
|
|
SELECT CASE n
|
||
|
|
CASE 65 TO 90
|
||
|
|
e = 90
|
||
|
|
n += 13
|
||
|
|
CASE 97 TO 122
|
||
|
|
e = 122
|
||
|
|
n += 13
|
||
|
|
CASE ELSE
|
||
|
|
e = 255
|
||
|
|
END SELECT
|
||
|
|
|
||
|
|
IF n > e THEN
|
||
|
|
n -= 26
|
||
|
|
END IF
|
||
|
|
@p = n
|
||
|
|
INCR p
|
||
|
|
n = @p
|
||
|
|
LOOP
|
||
|
|
FUNCTION = res
|
||
|
|
END FUNCTION
|
||
|
|
|
||
|
|
'testing:
|
||
|
|
|
||
|
|
FUNCTION PBMAIN () AS LONG
|
||
|
|
#DEBUG PRINT ROT13("abc")
|
||
|
|
#DEBUG PRINT ROT13("nop")
|
||
|
|
END FUNCTION
|