很简单的问题(RD.Attr and faDirectory)=faDirectory等于(RD.Attr=faDirectory)嘛?(29分)

  • 主题发起人 主题发起人 3333W
  • 开始时间 开始时间
3

3333W

Unregistered / Unconfirmed
GUEST, unregistred user!
我一直不明白啊,如果相等的话为什么不写成后一种,如果不等的话麻烦前辈们告知为什么?
如果你也不懂就帮助up一下。(请不要 硬 翻译语句的意思。谢谢合作)
 
不相等的.
1.faDirectory是一个文件属性值,其它还有
{ File attribute constants }

faReadOnly = $00000001 platform;
faHidden = $00000002 platform;
faSysFile = $00000004 platform;
faVolumeID = $00000008 platform;
faDirectory = $00000010;
faArchive = $00000020 platform;
faAnyFile = $0000003F;

2.RD.Attr 的取值是一个集合 可能是一个属性值或多个属性值

(RD.Attr and faDirectory)=faDirectory表示RD.Attr具有faDirectory属性值,当然可能还有其它的

(RD.Attr=faDirectory)表示只有faDirectory属性值, 不能有其它的

我说明白了吗?





 
谢谢,你的回答很负责。
你上面所说,我都明白。
不过
》(RD.Attr and faDirectory)=faDirectory表示RD.Attr具有faDirectory属性值,当然可能还有其它的
》(RD.Attr=faDirectory)表示只有faDirectory属性值, 不能有其它的
这个我就不懂了,你说(RD.Attr and faDirectory)=faDirectory还有其他可能,还会有什么可能,我实在想不出。这句只是为了求证RD记录里属性是否为faDirectory,关键之处就是为什么要 and faDirectory,直接用第二句我试过,一样啊,到底为什么要and.
 
RD.Attr 可能是下面几种的组合
faReadOnly = $00000001 platform;
faHidden = $00000002 platform;
faSysFile = $00000004 platform;
faVolumeID = $00000008 platform;
faDirectory = $00000010;
faArchive = $00000020 platform;
faAnyFile = $0000003F;

比如说既只读,又隐藏 这样RD.Attr的取值不是faReadOnly 也不是faHidden.而是他们的组合 RD.Attr=$00000003
所以需要位操作才能判断

我说明白了吗?

 
接受答案了.
 
RD.Attr(=$00000003)<>faReadOnly
RD.Attr(=$00000003)<>faHidden

RD.Attr(=$00000003) and faReadOnly = faReadOnly
RD.Attr(=$00000003) and faHidden = faHidden

RD.Attr(=$00000003) and faSysFile <> faSysFile
清楚了吗?
 
后退
顶部