2017.10.18

2017-10-18  本文已影响0人  笑而不语_ddbd

坑!string的内容是从1开始存的

(1)编译开关{$H-}:用string声明的是一个短字符串,索引0处存放的是其实际长度。

(2)编译开关{$H+}: 用string声明的是一个长字符串,索引从1开始,没有索引为0的字符。

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

看到一篇对搜寻某文件夹下的所有文件的代码的注解,非常好,摘抄到这里

DELPHI 这几句是什么意思?

var

sr:TSearchRec;//文件目录搜索记录类用来储存返回的文件的一些数据与FindFist,FindNext有关

Err:Integer;

begin

Err:=FindFirst('*.*',$37,sr);//(1) $37指什么?

while Err=0 do

begin

if sr.Name[1]<>'.' then阀川脆沸诒度错砂氮棘// (2) sr.Name[1]<>'.'中[1]<>'.'指什么意思

begin

if (sr.Attr and faDirectory)=0 then //(3) (sr.Attr and faDirectory)=0这是目录还是文件?

begin

treeview1.Items.AddChildFirst(bnode,sr.Name);

end;

if (sr.Attr and fadirectory)=faDirectory then

begin

filenode:=treeview1.Items.AddChildFirst(bnode,sr.Name);//(4) AddChildFirst属性是什么意思

chdir(sr.Name);//(5) 这句跟下面chdir('..')那句都解释一下

application.ProcessMessages;

myFind(filenode);

chdir('..');

end;

end;

err:=findNext(sr);

end;

yncg2046?2009-7-28

(1)$37是查找文件的属性,基本上是所有的文件都有找了,属性定义见帮助文件

Constant Value Description

----------------------------------------------

faReadOnly $00000001 Read-only files

faHidden          $00000002 Hidden files

faSysFile  $00000004 System files

faVolumeID $00000008 Volume ID files

faDirectory $00000010 Directory files

faArchive          $00000020 Archive files

faAnyFile          $0000003F 阀川脆沸诒度错砂氮棘Any file

(2)文件名第一个字符不是"." 在一个文件夹中有一个名称为"."的特殊文件代表本文件夹(在命令符模式下执行dir命令可以看到),相应的,还有一个".."代表上级目录(这个与问题5有关)

(3)文件

(4)在treeview1控件上加一个子结点

(5)改变当前目录,进入子目录中,执行myFind函数(估计这个自定义函数的功能是递归查找子目录中的文件了),执行完了调用chdir("..")返回上级目录.

整体看上去,这个函数就是读取一个文件夹,把下级的文件和文件夹挂到一个树控件上.

------------------------------------------------------------------------------------------------------------------------------------------------------------------

上一篇下一篇

猜你喜欢

热点阅读