主题:mid语句把我搞的晕头转向(不是mid函数)
聪明一袋烟
[专家分:330] 发布于 2011-03-11 00:15:00
Private Sub Form_Load()
Form1.AutoRedraw = True
[color=0000FF] a$ = "123456789"
Mid$(a$, 2) = a$
Print a$[/color]
[color=FFFF00] a$ = "123456789"
Mid$(a$, 3) = a$
Print a$[/color]
End Sub
请哪位 高人 给我解释 下蓝色部分的 代码为什么是 那样的结果 ,黄色的 结果我觉得是明白的,这个问题非常困扰我!!!!!!!!!,强烈求助估计没人会!!!!!!
回复列表 (共5个回复)
沙发
老大徒伤悲 [专家分:29120] 发布于 2011-03-11 11:32:00
只看出了规律,为什么,我是不知道的。查了查,mid的这种用法还真没有找到说明。你管他叫mid语句也算一种区别吧。
板凳
bcahzvip [专家分:6040] 发布于 2011-03-14 04:39:00
Private Sub Form_Load()
Me.AutoRedraw = True
a$ = "123456789"
Mid$(a$, 2) = a$
Print a$
a$ = "123456789"
Mid$(a$, 3) = a$
Print a$
a$ = "123456789"
Mid$(a$, 4) = a$
Print a$
a$ = "123456789"
Mid$(a$, 4) = String$(5, 0)
Print a$
End Sub
3 楼
天天学习 [专家分:4570] 发布于 2011-03-19 15:45:00
这个得看MSVBVM60.__vbaMidStmtBstr是怎么实现的了。
汇编水平不行,在OllyDbg下看不懂这个具体是怎么做的,还原不了。
用mid$时得注意下这个经验教训了
4 楼
guoyong_cy [专家分:3050] 发布于 2011-03-21 20:15:00
为什么不做一个对比例子:
a$ = "123456789"
b$ = "123456789"
Mid$(a$, 2) = b$
Print a$
和下面的对比:
a$ = "123456789"
Mid$(a$, 2) = a$
Print a$
看起来是一样的,但结果完全不同(说明没有重新分配临时变量)。
我怀疑这个应该违背了语句本来的意愿,多半是编错了,但因为很少人用,没修正,[em3]
应该为了速度,所以才没有分配临时变量,所以也有可能是我们用错了![em9]
5 楼
孙瑞 [专家分:590] 发布于 2011-03-23 14:55:00
这个语句就不应该这么用。Mid语句的用法MSDN上也没这一条
我来回复