热度 2| ||
解决办法
主要涉及encrypt和compress命令(针对.ile文件)
encrypt
不带密码加密
语法:encrypt("a.il" "b.ile");
输出到你的skill目录下的b.ile文件就是加密后的文件,这时候打开b.ile文件会发现是乱码了。虽然我们看是乱码,但是allegro可以识别
load("b.ile"), 让allegro加载b.ile文件,其实和加载没有加密的文件一样
带密码的加密
语法:encrypt("a.il" "b.ile" "passwd");
输出到你的skill目录下的b.ile文件就是加密后的文件,这时候打开b.ile文件会发现是乱码了。
load("b.ile" "passwd"), 让allegro加载b.ile文件,如果没有密码allegro没办法加载该文件
compress
压缩功能
如果skill文件过大我们需要压缩一下运行,这样也优化了程序,使程序执行起来更快捷一点,这样我们就需要compress指令来完成
语法:compress("a.il" "b.il");在CIW窗口中运行compress命令
;压缩a文件输出b文件到你的工作目录下。
这样你打开你的b文件发现空格操作符之类的东西,还有注释全没有了。真正达到了压缩的功能了。
解密功能
没有加密码的encrypt文件我们可以通过compress来解密。但是解出来的文件可读性不是很强,因为很多操作符没了,换行也没了,读起来比较困难。
加了密码的文件,目前还不知道怎么可以进行解密。
如何让解密文件更有可读性
这段代码可以解开没加密的文件,而且可读性非常好,比你开始写的都好。
这是在以国外站上找到的,老外写的,运行格式如下NlDecrypt("a.il" "b.il")
Load 下面程序到CIW窗口后,在CIW窗口中运行NlDecrypt("a.il" "b.il")。
procedure( NlDecrypt( inputFile @optional outputFile "tt") prog( (inp out line) if( inputFile then unless( outputFile outputFile = sprintf(nil "%s.dec" inputFile) ) when( isFile( outputFile ) print( "You must specify a file that doesn't exist!!!\n" ) hiGetAttention( ) return() ) unless( inp = infile(inputFile) printf("Unable to open input file: %s\n" inputFile) return() ) unless( out = outfile(outputFile "w") printf("Unable to open output file: %s\n" outputFile) return() ) while( line = lineread(inp) when( line != t pprint(line out) ) ) close(inp) close(out) else printf("You must at least specify an input file!\n") return() ) ;end if inputFile return(t) ) ;end prog ) ;end procedure