主题:chr(),asc()???
pengwei0417
[专家分:0] 发布于 2008-06-01 17:20:00
这三个字:
一个是:范
一个是:二
一个是:斌
代码:
LOCAL TEXT1,A as String
tex1=""
A="范二斌"
FOR i=1 TO LENC(a)
c=CHR(ASC(SUBSTRC(a,i,1))+3)
tex1=tex1+c
ENDFOR
当I循环到2时,提示出错,说明什么函数类型错误什么的?这是为什么?
我把+3改成+1好像就可以了.怎么回事呀,有什么解决办法?
是不是超出CHR()范围了呀,那我要对任意字符加密该怎么办呀?
回复列表 (共12个回复)
沙发
cbl518 [专家分:57140] 发布于 2008-06-01 17:55:00
是超出CHR()的取值的范围了!
加密:
repl 姓名 with STUFF(姓名, 3, 0, left("腌",1))
板凳
cbl518 [专家分:57140] 发布于 2008-06-01 17:57:00
解密:
repl 姓名 with STUFF(姓名, 3, 1, "")
3 楼
pengwei0417 [专家分:0] 发布于 2008-06-01 18:39:00
[quote]解密:
repl 姓名 with STUFF(姓名, 3, 1, "")
[/quote]
这个名的意思是用""空字代替姓名.
那表关闭后,再打开时,如何解密呀?
4 楼
cbl518 [专家分:57140] 发布于 2008-06-01 20:49:00
加密:
repl 姓名 with STUFF(姓名, 3, 0, left("腌",1))
解密:
repl 姓名 with STUFF(姓名, 3, 1, "")
5 楼
pengwei0417 [专家分:0] 发布于 2008-06-02 09:45:00
repl 姓名 with STUFF(姓名, 3, 0, left("腌",1)) 的意思是在第三个位置插入LEFT("腌",1).
因为STUFF和LEFT只适用于单字节匹配,所有取的值是乱其八糟的东西.
但为什么原来的字没有了呢,0不是代表插入吗,怎么全改了?
另外,关于repl 姓名 with STUFF(姓名, 3, 1, "")解密还是不太明白,""不是代表空串吗,在第三个位置,替换一个字符为"".是这个意思吗?
我试了一下,不好使呀?
请老师解释一下.
6 楼
pengwei0417 [专家分:0] 发布于 2008-06-02 09:52:00
?STUFF("刘鹏",3,0,LEFT("腌",1))
结果为:刘肱
?STUFF("刘肱", 3, 1, "")
结果为:刘
7 楼
cbl518 [专家分:57140] 发布于 2008-06-02 16:34:00
[quote]我试了一下,不好使呀?
[/quote]
以下代码是全部姓名加密和解密,这种方法速度快,稳定,我使用了十多年了,怎么会不好用呢!
加密:
REPLACE ALL 姓名 with STUFF(姓名, 2, 0, left("腌",1))
解密:
REPLACE ALL 姓名 with STUFF(姓名, 2, 1, "")
8 楼
cbl518 [专家分:57140] 发布于 2008-06-02 16:36:00
华晓白 加密后 浑?
盛国兴 加密后 孰⒐?
9 楼
pengwei0417 [专家分:0] 发布于 2008-06-02 18:47:00
好使,是我没整对?
能不能麻烦老师解释一下这个原理呀,我还没太弄明白?
10 楼
南平午丁 [专家分:350] 发布于 2008-06-07 00:10:00
汉字的asc码通常都再几万,他们相距也甚远,如果把他的asc码+一个不是刚好的值就没有这个汉字,也就出错。你是想加密不如加上一个数之后直接保存asc码+一个数的值,引用时先把加上的数减掉在CHR 我认为更合理
我来回复