找回密码
 加入我们

QQ登录

只需一步,快速开始

搜索
查看: 4660|回复: 2

请问这句代码是什么意思?

[复制链接]

76

主题

375

回帖

0

精华

铜牌会员

积分
231
发表于 2009-10-12 01:44:46 | 显示全部楼层 |阅读模式
<p><font style="BACKGROUND-COLOR: #ffffff" face="Verdana">这是搜索文件模块里的一句代码</font></p>
<p><font style="BACKGROUND-COLOR: #ffffff" face="Verdana"></font>&nbsp;</p>
<p><font style="BACKGROUND-COLOR: #ffffff" face="Verdana">If GetAttr(CurrentPath &amp; sFileName) And vbDirectory Then</font></p>
<p>&nbsp;</p>
<p>And两边都是数字,但又不是这种if 数字1 and 数字2 = 数字3 then的形式。没有大于小于等于几直接就Then,请问这应该怎么理解?</p>

275

主题

3019

回帖

1

精华

管理员

嗷嗷叫的老马

积分
17066

论坛牛人贡献奖关注奖最佳版主进步奖人气王疯狂作品奖精英奖赞助论坛勋章乐于助人勋章

QQ
发表于 2009-10-12 02:01:33 | 显示全部楼层
<p>这是位操作,AND的话就是与,叫"按位与".</p>
<p>&nbsp;</p>
<p>比如,vbDirectory的值是16(10进制),则其二进制为10000,也就是说第五位为1;</p>
<p>&nbsp;</p>
<p>而如果某个LONG值里的第五位为1,就说明这个LONG值包含vbDirectory属性.</p>
<p>&nbsp;</p>
<p>所以使用AND来进行测试.</p>
<p>&nbsp;</p>
<p>比如,405的二进制是<font face="Verdana">110010101</font>,如果和10000进行与操作,则会得到结果"10000".</p>
<p>&nbsp;</p>
<p>而389是<font face="Verdana">110000101</font>,第五位为0,结果就会是0.</p>
<p>&nbsp;</p>
<p>因此上面等式完整的表达式应该是:</p>
<p>&nbsp;</p>
<p><font style="BACKGROUND-COLOR: #ffffff" face="Verdana">If (GetAttr(CurrentPath &amp; sFileName) And vbDirectory) = vbDirectory&nbsp;Then</font></p>
<p>&nbsp;</p>
<p>就是为了判断返回的属性里是否包含了vbDirectory.</p>
我就是嗷嗷叫的老马了......

76

主题

375

回帖

0

精华

铜牌会员

积分
231
 楼主| 发表于 2009-10-12 02:09:10 | 显示全部楼层
谢谢!
您需要登录后才可以回帖 登录 | 加入我们

本版积分规则

快速回复 返回顶部 返回列表