Function
FUNCTION ROT47$: TextInput$
LOCAL TextLen, convertedText$
LOCAL ROT47NumberThing
TextLen=LEN(TextInput$)
FOR ABC=0 TO TextLen-1
IF((ASC(MID$(TextInput$, ABC, 1))<127) AND (ASC(MID$(TextInput$, ABC, 1))>32))
IF(ASC(MID$(TextInput$, ABC, 1))+47 > 126)
ROT47NumberThing=(ASC(MID$(TextInput$, ABC, 1))+47)-127
convertedText$=convertedText$+CHR$(33+ROT47NumberThing)
ELSE
convertedText$=convertedText$+CHR$(ASC(MID$(TextInput$, ABC, 1))+47)
ENDIF
ELSE
convertedText$=convertedText$+MID$(TextInput$, ABC, 1)
ENDIF
NEXT
RETURN convertedText$
ENDFUNCTION
Example:
GLOBAL String$, TextFileSize, ASCIIFileSize, ASCII$, InputStr$
GLOBAL Output$
PRINT "Type !input or a Text",10,10
INPUT InputStr$,10,20
IF InputStr$="!input"
TextFileSize=GETFILESIZE("input.txt")
OPENFILE(1, "input.txt", 1)
READSTR 1, String$, TextFileSize
CLOSEFILE 1
Output$=ROT47$(String$)
ELSE
String$=InputStr$
Output$=ROT47$(String$)
ENDIF
OPENFILE(1, "output.txt", 0)
WRITELINE 1, Output$
CLOSEFILE 1
PRINT Output$,10,10
SHOWSCREEN
KEYWAIT
END
FUNCTION ROT47$: TextInput$
LOCAL TextLen, convertedText$
LOCAL ROT47NumberThing
TextLen=LEN(TextInput$)
FOR ABC=0 TO TextLen-1
IF((ASC(MID$(TextInput$, ABC, 1))<127) AND (ASC(MID$(TextInput$, ABC, 1))>32))
IF(ASC(MID$(TextInput$, ABC, 1))+47 > 126)
ROT47NumberThing=(ASC(MID$(TextInput$, ABC, 1))+47)-127
convertedText$=convertedText$+CHR$(33+ROT47NumberThing)
ELSE
convertedText$=convertedText$+CHR$(ASC(MID$(TextInput$, ABC, 1))+47)
ENDIF
ELSE
convertedText$=convertedText$+MID$(TextInput$, ABC, 1)
ENDIF
NEXT
RETURN convertedText$
ENDFUNCTION