VF使用高级技巧

发布 2021-04-21 23:05:28 阅读 1063

(如何取得某个文件的大小、修改日期及属性。

vfp为我们提供了一个非常强大函数adir(),语法:

adir(arrayname[,cfileskeleton[,cattribute[,ccreatortype]]]

使用:x=adir(myml,'c:\temp\*.dbf')

返回:x=符合cfileskeleton条件的文件或目录个数。

myml=一个有五列内容的数组。

这五列的含义是:

1文件名字符型。

2文件大小数值型。

3文件日期日期型。

4文件时间字符型。

5文件属性字符型。

例:我们想得到某个文件的大小或文件修改日期及属性:

x=adir(myml,'c:\temp\')

ifx#wjsize=myml(1,2)&&取得文件大小。

wjdate=myml(1,3)&&取得修改日期及属性。

wjattr=myml(1,5)&&取得文件属性。

elsewaitwind'没有您指定的文件'

endi文件属性的含义:

a档案文件一可读写。

h隐藏文件。

r只读文件。

s系统文件。

d目录或文件夹。

我们利用adir()还可以检查某个目录是否存在:

x=adir(myml,'c:\abcde','d')

ifx=0waitwind'该目录不存在…'

endi当然用下面的更简单:

if!file('c:\abcdeul')

waitwind'该目录不存在…'

endi总之adir()可以达到很多目的,具体使用请看查看帮助。

其实很简单,就用一个函数就行了,但一直没用过。

imestatus(1) 打开或关闭 ime (输入法编辑器)窗口或返回当前的 ime 状态。

在vf中如何加密数据库文件。

加密思路:数据库文件结构分为三部分:文件头部分、字段描述和记录部分。文件头部分的第一个字节是chr(3),这样,就可以修改文件的第一个字节,使正常打开的方式不能浏览文件。

=fwrite(hle,iif(fbyte==chr(3),chr(0),chr(26)))

&假如第一个字节是chr(3)则用chr(0),否则用chr(26)写入。使用时要用到操作低级文件的几个函数。

在vf中,有时需要把表内容转换成。txt文件,以前对这方面内容不够重视,没有很好的学习,现整理一下:

1 库文件复制为标准格式的数据文件。

copy to sdf next ..for ..while ..fields ..

2文本数据文件复制到在dbf文件。

append form...sdf...用法和copy to 一样。

3几个打开txt文件的函数。

dd=fcreat('路径+文件名',n) dd为打开文件的句柄,n为0时(默认),可读写文件,为1时只读,为2时隐藏。

当一个文件已存在时,则会导致原文件内容丢失,为避免,应用file()函数来测试文件是否存在。

dd=fopen(路径+文件名',n) n为0时只读(默认),为1时只写,为2时可读和写。

feof(dd) 判断是否在文件头。

fflush(dd) 更新并保存文件将在缓冲区内打开的文件数据写入磁盘。并释放内存。

filetostr('路径+文件名') 将文件内容返回为一串字符。

fputs(dd,内容,写入符数) 写入字符,并在字符串的后面自动写入回车符及换行符chr(10)

fwrite(dd,内容,写入符数) 写入字符,该函数适用于非文本文件和二进制文件。

fread(dd,读取的字节数)

fget(dd,读取的字节数) 默认最多可返回254个字节,但是,该函数遇回车符chr(13)时,将停止读取。

fseek(dd,字节数1,移到到位置n) 字节数为正时向文件尾移动,n为0表示文件头(默认),为1表示文件指针当前位。

置,为2表示文件尾。=seek(dd,0,0)表示移动到文件头。=seek(dd,0,2)可返回文件的总字节数。=fseek(dd,0,1)返回文。

件指针的当前位置。 =fseek(dd,10,1)将文件指针从当前位置向后移动10个字节。

ferror() 取得低级文件执行的错误码错误号错误原因如果低级文件函数执行成功,则 ferror( )函数返回 0;如。

果函数执行不成功,此函数返回一个正值。下列出了 ferror( )函数返回的各个错误编号及错误原因 2文件没有。

找到 4 打开的文件太多(文件句柄不够) 5 不能访问 6给出的文件句柄无效 8内存不足 25移动。

文件指针时出错(无法将指针移到文件开始位置之前) 29磁盘已满 31 打开文件时出错。

vfp数据表加密解密程序。

数据表加密解密程序。

此程序在vpf6中通过并且无论经过多少次加密都一次解出。

加密程序。newname=""

dbf_f_name=upper(alltrim(newname)) 文件名处理(变成大写)

hhandle=fopen(dbf_f_name,2) &打开文件或通信端口,供低级文件函数使用。

if hhandle>0 &&如果fopen()打开文件,返回一个大于零的值。

fbyte=fread(hhandle,1) &读一个字节。

=fseek(hhandle,0) &将句柄移到头(在低级文件函数打开的文件中移动文件指针)

=fwrite(hhandle,iif(fbyte==chr(48),chr(0),chr(0)))改变数据库的关键命令。

***向低级文件函数打开的文件或通信端口写入字符串。

=fclose(hhandle) &刷新并关闭低级文件函数打开的文件或通信端口。

?hhandle

endif hhandle>0

return

解密程序如下。

newname=""

dbf_f_name=upper(alltrim(newname)) 文件名处理(变成大写)

hhandle=fopen(dbf_f_name,2) &打开文件或通信端口,供低级文件函数使用。

if hhandle>0 &&打开文件或通信端口,供低级文件函数使用。

fbyte=fread(hhandle,1) &读一个字节。

=fseek(hhandle,0) &将句柄移到头(在低级文件函数打开的文件中移动文件指针)

if fbyte=chr(0) .or. fbyte=chr(26)

=fwrite(hhandle,iif(fbyte==chr(0),chr(48),chr(48)))

endifendif

fclose(hhandle)

return

justdrive( )函数从完整路径中返回驱动器的字母。

justext( )函数从完整路径中返回文件扩展名的字符。

justfname( )函数从完整的路径和文件名中返回文件名部分。

justpath( )函数从包括完整路径和文件名中返回路径名。

juststem( )函数从包含完整路径和文件名中返回文件根名(扩展名前的文件名)。

在vf中,有时需要把表内容转换成。txt文件,以前对这方面内容不够重视,没有很好的学习,现整理一下:

1 库文件复制为标准格式的数据文件。

copy to sdf next ..for ..while ..fields ..

2文本数据文件复制到在dbf文件。

append form...sdf...用法和copy to 一样。

3几个打开txt文件的函数。

dd=fcreat('路径+文件名',n) dd为打开文件的句柄,n为0时(默认),可读写文件,为1时只读,为2时隐藏。

当一个文件已存在时,则会导致原文件内容丢失,为避免,应用file()函数来测试文件是否存在。

dd=fopen(路径+文件名',n) n为0时只读(默认),为1时只写,为2时可读和写。

feof(dd) 判断是否在文件头。

fflush(dd) 更新并保存文件将在缓冲区内打开的文件数据写入磁盘。并释放内存。

filetostr('路径+文件名') 将文件内容返回为一串字符。

fputs(dd,内容,写入符数) 写入字符,并在字符串的后面自动写入回车符及换行符chr(10)

fwrite(dd,内容,写入符数) 写入字符,该函数适用于非文本文件和二进制文件。

fread(dd,读取的字节数)

fget(dd,读取的字节数) 默认最多可返回254个字节,但是,该函数遇回车符chr(13)时,将停止读取。

fseek(dd,字节数1,移到到位置n) 字节数为正时向文件尾移动,n为0表示文件头(默认),为1表示文件指针当前位。

置,为2表示文件尾。=seek(dd,0,0)表示移动到文件头。=seek(dd,0,2)可返回文件的总字节数。=fseek(dd,0,1)返回文。

件指针的当前位置。 =fseek(dd,10,1)将文件指针从当前位置向后移动10个字节。

ferror() 取得低级文件执行的错误码错误号错误原因如果低级文件函数执行成功,则 ferror( )函数返回 0;如。

果函数执行不成功,此函数返回一个正值。下列出了 ferror( )函数返回的各个错误编号及错误原因 2文件没有。

找到 4 打开的文件太多(文件句柄不够) 5 不能访问 6给出的文件句柄无效 8内存不足 25移动。

文件指针时出错(无法将指针移到文件开始位置之前) 29磁盘已满 31 打开文件时出错。

vfp数据表加密解密程序。

数据表加密解密程序。

此程序在vpf6中通过并且无论经过多少次加密都一次解出。

加密程序。newname=""

dbf_f_name=upper(alltrim(newname)) 文件名处理(变成大写)

hhandle=fopen(dbf_f_name,2) &打开文件或通信端口,供低级文件函数使用。

if hhandle>0 &&如果fopen()打开文件,返回一个大于零的值。

fbyte=fread(hhandle,1) &读一个字节。

=fseek(hhandle,0) &将句柄移到头(在低级文件函数打开的文件中移动文件指针)

=fwrite(hhandle,iif(fbyte==chr(48),chr(0),chr(0)))改变数据库的关键命令。

***向低级文件函数打开的文件或通信端口写入字符串。

=fclose(hhandle) &刷新并关闭低级文件函数打开的文件或通信端口。

?hhandle

endif hhandle>0

return

解密程序如下。

newname=""

dbf_f_name=upper(alltrim(newname)) 文件名处理(变成大写)

hhandle=fopen(dbf_f_name,2) &打开文件或通信端口,供低级文件函数使用。

if hhandle>0 &&打开文件或通信端口,供低级文件函数使用。

fbyte=fread(hhandle,1) &读一个字节。

=fseek(hhandle,0) &将句柄移到头(在低级文件函数打开的文件中移动文件指针)

if fbyte=chr(0) .or. fbyte=chr(26)

=fwrite(hhandle,iif(fbyte==chr(0),chr(48),chr(48)))

endifendif

fclose(hhandle)

return

高级使用技巧

第一节输入中的问题 对于有特殊要求的文档,有时不想自动换行,而是用硬回车强行分行,这时会发现文本右侧对不齐。一般解决办法都是在此行文字中的标点符号前加一些小字号空格,比如插入若干个8号或更小的空格,可使各行文本基本对齐。运用项目符号和编号时,如果一个项目中有多个段落,可以使用换行符进行换行 在输入时...

photoshop高级使用技巧

密技。一 快捷键真快双击面板 open file ctrl 双击面板 new file shift 双击面板 s e alt 双击面板 open as ctrl shift s e as ctrl alt o 实际像素显示。ctrl h 隐藏选定区域。ctrl d 取消选定区域。ctrl w 关闭文...

Excel高级使用技巧

一定会给你一个满意的答案。6 自定义函数 虽然excel中已有大量的内置函数,但有时可能还会碰到一些计算无函数可用的情况。假如某公司采用一个特殊的数学公式计算产品购买者的折扣,如果有一个函数来计算岂不更方便?下面就说一下如何创建这样的自定义函数。自定义函数,也叫用户定义函数,是excel最富有创意和...