求下面这段代码的解释,感激不尽!

functionchangename(binarystr)fori=0tolenb(binarystr)-1temp=midb(binarystr,i+1,1)ifasc... function changename(binarystr)
for i = 0 to lenb(binarystr) - 1
temp = midb(binarystr,i+1,1)
if ascb(temp)>127 then
changename = changename&chr(ascw(midb(binarystr,i+2,1)&temp))
i = i + 1
else
changename = changename&chr(ascb(temp))
end if
next
end function
展开
 我来答
qingningleyun
2012-08-20 · TA获得超过5848个赞
知道大有可为答主
回答量:2991
采纳率:30%
帮助的人:2876万
展开全部
这个函数只是把字符串拆散之后又组合起来,而且在出现双字节字时的组装好像搞反了
changename = changename&chr(ascw(midb(binarystr,i+2,1)&temp))

是否应该是:
changename = changename&chr(temp&ascw(midb(binarystr,i+2,1)))
难道是故意这样利用双字节字来加密吗?

解释:

function changename(binarystr)
for i = 0 to lenb(binarystr) - 1 // 从头到尾逐个取出字符串字符到 temp
temp = midb(binarystr,i+1,1)
if ascb(temp)>127 then // 假如是双字节字(如汉字等),再取一个字符
changename = changename&chr(ascw(midb(binarystr,i+2,1)&temp))
i = i + 1 // 字符转换为ASC码,再转换为字符加到结果中
else
changename = changename&chr(ascb(temp)) // 单字节字符加入
end if
next
end function
更多追问追答
追问
可以详细解释下lenb()、midb()、ascb()、ascw()的含义很用法吗?
追答
lenb()        取得字符串的长度                lenb("Delphi") 等于 6 
midb() 从字符串中取得一个子串 midb("Delphi", 2, 4) 等于 "elph"
ascb() 取得单字节的ASC码 asc("A") 等于 65
ascw() 取得双字节的ASC码 asc("中") 等于 214 208
百度网友8d99db0
2012-08-20 · TA获得超过159个赞
知道答主
回答量:50
采纳率:0%
帮助的人:27.3万
展开全部
w我只是为了回答
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
chk109907
2012-08-20
知道答主
回答量:1
采纳率:0%
帮助的人:1529
展开全部
查下词典
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式