回 帖 发 新 帖 刷新版面

主题:chr(),asc()???

这三个字: 
一个是:范 
一个是:二 
一个是:斌 

代码: 
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个回复)

沙发

是超出CHR()的取值的范围了!


加密:
repl 姓名 with STUFF(姓名, 3, 0, left("腌",1))

板凳

解密:
repl 姓名 with STUFF(姓名, 3, 1, "")

3 楼

[quote]解密:
repl 姓名 with STUFF(姓名, 3, 1, "")
[/quote]
这个名的意思是用""空字代替姓名.
那表关闭后,再打开时,如何解密呀?

4 楼

加密:
repl 姓名 with STUFF(姓名, 3, 0, left("腌",1))


解密:
repl 姓名 with STUFF(姓名, 3, 1, "")

5 楼

repl 姓名 with STUFF(姓名, 3, 0, left("腌",1)) 的意思是在第三个位置插入LEFT("腌",1).
因为STUFF和LEFT只适用于单字节匹配,所有取的值是乱其八糟的东西.
但为什么原来的字没有了呢,0不是代表插入吗,怎么全改了?

另外,关于repl 姓名 with STUFF(姓名, 3, 1, "")解密还是不太明白,""不是代表空串吗,在第三个位置,替换一个字符为"".是这个意思吗?

我试了一下,不好使呀?

请老师解释一下.



6 楼

?STUFF("刘鹏",3,0,LEFT("腌",1))
结果为:刘肱
?STUFF("刘肱", 3, 1, "")
结果为:刘

7 楼

[quote]我试了一下,不好使呀?
[/quote]

以下代码是全部姓名加密和解密,这种方法速度快,稳定,我使用了十多年了,怎么会不好用呢!


加密:
REPLACE ALL 姓名 with STUFF(姓名, 2, 0, left("腌",1))


解密:
REPLACE ALL 姓名 with STUFF(姓名, 2, 1, "")

8 楼

华晓白     加密后     浑?
盛国兴     加密后     孰⒐?

9 楼

好使,是我没整对?
能不能麻烦老师解释一下这个原理呀,我还没太弄明白?

10 楼

汉字的asc码通常都再几万,他们相距也甚远,如果把他的asc码+一个不是刚好的值就没有这个汉字,也就出错。你是想加密不如加上一个数之后直接保存asc码+一个数的值,引用时先把加上的数减掉在CHR 我认为更合理

我来回复

您尚未登录,请登录后再回复。点此登录或注册