VFP 编程技巧 2007-07-06 02:56 在 VFP 中如何历遍所有文件夹和文件 在 VFP 中,能象一些杀毒软件那样,找遍磁盘的所有文件夹和文件吗? 答案是肯定的,而且很简单: *利用 VFP 的 Create Cursor -SQL 命令建立有 5 个字段的临时库 *结合前面提到的 ADIR()函数便可完成。 下面是具体代码: dqml='C:' &;&;需扫描的盘符 use Create Cursor mylsdbf (wjmc c(120),wjcd n(10),wjrq d,wjshj c(10),wjsx c(6)) xGS=1 xCD=0 append BLANK REPL wjmc WITH dqml do while !eof() nRecn=Recn() dqml=allt(wjmc)+'' x=adir(Mysz,(dqml+'*.*'),'rashd') if x<>0 for I=3 to x Mysz(I,1)=dqml+Mysz(I,1) xGS=xGS+1 xCD=xCD+Mysz(I,2) endf append from array Mysz for allt(wjmc)<>'.' AND allt(wjmc)<>'..' and 'D'$wjsx endi go nRecn skip endd use 这里有以上例子的源代码实例下载
在 VFP 如何利用低级文件操作函数读取*.INI 文件 VFP 为我们提供了 16 个低级文件操作函数,充分利用这些函数,几乎可对所有文件进 行本来只有汇编、C 等语言才能进行的操作。 *.INI 文件其实也是 ASCII 码文本文件,只不过有其特定的规律而已。
下面以读取 system.INI 中[boot.description]关键字里的 mouse.drv 标识符中的值为 例来说明: nPath_ls=fullpath('command',2) nPath=strtran(nPath_ls,'COMMAND.COM','system') &;&;取得 Windows\system\的 目录名 dkwjm=nPath+'system.ini' &;&;需打开文件的路径和文件 名 Fp=Foren(dkwjm,0) &;&;以只读(默认方式 0 可以 不用)打开文件 if Fp<0 wait wind '打不开您指定的文件' retu endi do while !Feof(Fp) wjnr=Fgets(Fp) &;&;从打开的文件中读取一行 if atc('mouse.drv',wjnr)=1 exit endi endd =Fclose(Fp) &;&;关闭打开的文件 x=atc('=',wjnr) nQdz=iif(x>1,suns(wjnr,x+1),'') &;&;nQdz='标准鼠标'字符串 retu 我只不过是说明如何运用 VFP 提供的这些函数,至于如何建立和改写文件,为何用 Fgets() 来读取数据而不用 Fread()来读取数据等, 可以查阅 VFP 帮助。 VFP3.0 的帮助是一本很好的 中文教科书。
如何改变文件的最后修改日期和时间 在 WINDOW 9X 下我们没办法来改变一个文件的日期和时间,那在 VFP 能办到吗? 在 WINDOW 9X 下文件的日期和时间有创建、修改和访问三种,在通常情况下我们所说 的文件日期和时间指的是修改这一项。 那在 VFP 下如何改文件日期和时间呢: Fp=Foren('需打开的文件',2) &;&;以读写方式打开文件 if Fp<0 wait wind '打不开您指定的文件' retu endi wjnr=Fread(fp,1) &;&;从打开的文件头中读一个字节到 wjnr =Fseek(Fp,0,0) &;&;将文件指针移到文件头 (回到原来的位置) =Fwrite(Fp,wjnr,1) &;&;向打开的文件头中写入一个字节
=Fclose(Fp)
&;&;关闭打开的文件
即把读取的那个字节原封不动的再写入文件,从而达到了将当前系统 的日期和时间来改写文件的日期和时间目的。 如何在程序的开始检测权限和根据权
限操作 在一个程序的开始部分,如何根据不同的口令字来区分不同的登权限,各自的 口令字和权限设置又如何加以保密,以防止非法查看和修改? 我们辛辛苦苦编制的程序又如何根据每台机器的硬件来加以判断用户的合法 与非法,以防止非法拷贝? 针对以上问题,我编制了一个简单的程序实例供有兴趣的朋友参考。 该实例并非十分完美,也很简单,意在提供一种思路,大家可根据自己的情 况,加以完善。 实例共有一个数据表和四个模块组成,分别是: 一、KLK.DAT 这是经过 vfpjmdbf.vcx 加密后的数据表,解密后的表结构如下: ======================================================== 表文件名: KLK.DBF 数据记录数: 3 最近更新的时间: 10/17/1999 代码页: 936 字段 字段