' ' © JM. :: Hecho en Ronda ' ' ' Procedente de... es.geocities.com/jm00092 ' '______________________________________________________________________ ' DECLARE FUNCTION codi$ (txt$, clave$, que!) PALETTE 3, 40 PALETTE 6, 54 COLOR 15, 3: CLS COLOR 15, 1: PRINT SPACE$(80) LOCATE 1, 10: PRINT "Codificador Basic Hecho en Ronda" LOCATE 3, 1: COLOR 0, 6: PRINT " Codificaci¢n " COLOR 15, 3: LOCATE 4, 3: LINE INPUT "Texto: ", txt$ LOCATE 5, 3: LINE INPUT "Clave: ", clv$ codifi$ = codi$(txt$, clv$, 0) COLOR 15, 3: LOCATE 7, 3: PRINT "Codificado: "; COLOR 10, 3: PRINT codifi$ LOCATE 9, 1: COLOR 0, 6: PRINT " Descodificaci¢n " LOCATE 25, 10: COLOR 1, 3: PRINT "Para salir escribir Clave = SALIR"; VIEW PRINT 10 TO 24 DO COLOR 15: LINE INPUT " Clave: ", cl$ PRINT " Descodificado: "; COLOR 10: PRINT codi$(codifi$, cl$, 1) PRINT LOOP UNTIL UCASE$(cl$) = "SALIR" COLOR 13 ' ' © JM. :: Hecho en Ronda ' ' ' Procedente de... www.jm-web.tk :: es.geocities.com/jm00092 ' '______________________________________________________________________ ' ' ' txt$......Texto para codificar o decodificar ' clave$....Clave de codificaci¢n ' que.......¨Que hacer?: 0=Codificar 1= Decodificar ' FUNCTION codi$ (txt$, clave$, que) IF txt$ = "" OR clave$ = "" THEN SOUND 1200, 2: EXIT FUNCTION salto = LEN(clave$) Nuevotxt$ = "" FOR n = 1 TO LEN(txt$) STEP salto trozo$ = MID$(txt$, n, salto) FOR nn = 1 TO LEN(trozo$) A = ASC(MID$(clave$, nn, 1)) B = ASC(MID$(trozo$, nn, 1)) SELECT CASE que CASE 0 IF A + B - 30 > 255 THEN A = A - 256 Nuevaletra$ = CHR$(A + B - 30) CASE ELSE IF B - A + 30 < 32 THEN Nuevaletra$ = "ş" ELSE Nuevaletra$ = CHR$(B - A + 30) END SELECT Nuevotxt$ = Nuevotxt$ + Nuevaletra$ NEXT NEXT codi$ = Nuevotxt$ END FUNCTION