最新FoxPro低级文件控制.doc

上传人:1595****071 文档编号:34717732 上传时间:2022-08-18 格式:DOC 页数:53 大小:226KB
返回 下载 相关 举报
最新FoxPro低级文件控制.doc_第1页
第1页 / 共53页
最新FoxPro低级文件控制.doc_第2页
第2页 / 共53页
点击查看更多>>
资源描述

《最新FoxPro低级文件控制.doc》由会员分享,可在线阅读,更多相关《最新FoxPro低级文件控制.doc(53页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、Four short words sum up what has lifted most successful individuals above the crowd: a little bit more.-author-dateFoxPro低级文件控制FoxPro:低级文件控制FoxPro 低级文件控制低级文件控制主要有以下几种:_TEXT系统内存变量,FCHSIZE(),FCLOSE(),FCREATE(),FFLUSH(),FGETS() function,FOPEN(),FPUTS,FREAD(),FWRITE()。具体的使用方法,参考如下:_TEXT 系统内存变量把“”和 TEXT

2、. ENDTEXT 文本合并命令的结果输出到低级文件中。语法_TEXT = nFileHandle参数nFileHandle指定一个数值,该数值确定输出的低级文件。说明 和 TEXT . ENDTEXT 能很容易地把表的内容、内存变量以及函数和表达式的结果合并到文本中。由这些文本合并命令所产生的结果可以输出到屏幕或窗口或低级文件中,_TEXT 系统内存变量可以把文本合并命令的结果输出到低级文件中。要把“”和 TEXT . ENDTEXT 文本合并命令的结果输出到低级文件中,需要在 SET TEXTMERGE 命令中加入 TO fileName 子句,FileName 的文件句柄保存在 _TEX

3、T 变量中。如果在 _TEXT 中已存有另一个低级文件的句柄,则关闭该低级文件。用 FCREATE( ) 函数创建并打开低级文件,用 FOPEN( ) 函数打开已存在的低级文件。当文件成功地创建或打开时,这两个函数返回一个正的文件句柄。把该文件句柄保存在 _TEXT 中,将把“”和 TEXT . ENDTEXT 文本合并命令的任意结果连续输出到该文件中。使用 STORE 或 = 可以把文件句柄存入 _TEXT 中。打开的低级文件必须具有写特权,以便接收文本合并命令的输出。可以使用 FCLOSE( ) 或 CLOSE ALL 关闭低级文件,也可以用 SET TEXTMERGE TO 命令而不加文

4、件名来关闭低级文件,该文件的句柄保存在 _TEXT 中。_TEXT 的初始默认值是 -1。如果您正将文本合并输出到文件中,该文件的句柄存在 _TEXT 中,那么您可以把 -1 存入 _TEXT 中,这样可以关闭对该文件的输出而不关闭该文件。通过向 _TEXT 中保存入不同的文件句柄和 -1,可以把文本合并输出到不同的文件中。 _text示例*下面的示例演示了如何把文本合并输出到不同* 的文件中。SET TALK OFFSET TEXTMERGE ON NOSHOW & 启用文本合并,不输出到屏幕上。SET TEXTMERGE DELIMITERS TO & 默认的文本合并分隔符 SET TEX

5、TMERGE TO date.txt & 创建并输出到 date.txt 文件中STORE _TEXT TO gcDateHandle & 保存 date.txt 的文件句柄STORE -1 TO _TEXT & 关闭对 date.txt 文件的输出,但保持 date.txt 文件打开SET TEXTMERGE TO time.txt & 创建并输出到 time.txt 文件中STORE _TEXT TO gcTimeHandle & 存贮 time.txt 的文件句柄* 向 time.txt 传送下列文本*The time is:STORE gcDateHandle TO _TEXT & 现

6、在把文本输出到 date.txt 文件* 向 date.txt 传送下列文本*Todays date is:STORE gcTimeHandle TO _TEXT & 现在把文本输出到 time.txt 文件* 把时间输出在同一行上* STORE gcDateHandle TO _TEXT & 现在把文本输出到 time.txt 文件* 把日期输出在同一行上* CLOSE ALL & 关闭所有文件TYPE date.txt & 查看 date.txt 文件的内容.WAIT WINDOW & 暂停TYPE time.txt & .以及 time.txt 文件的内容ERASE date.txtER

7、ASE time.txtFCHSIZE( ) 函数更改用低级文件函数打开的文件的大小。语法FCHSIZE(nFileHandle, nNewFileSize)参数nFileHandle指定希望改变其大小的文件的句柄,此句柄可以在打开文件时由 FOPEN( ) 函数返回,或者在创建文件时用 FCREATE( ) 函数返回。如果使用 FOPEN( ) 函数打开文件,该文件应以“写”或“读写”方式打开,以便更改其大小。nNewFileSize以字节为单位,指定新的文件大小。如果 nNewFileSize 小于文件的原始大小,文件将被截断;如果 nNewFileSize 大于文件的原始大小,则增大文件

8、。返回值类型:数值型说明FCHSIZE( ) 函数根据指定字节数增大文件或截断文件。当增大文件时,在打开文件所在的驱动器上,Visual FoxPro 将为文件分配扇区。由于 FCHSIZE( ) 函数并不对新的文件存储空间初始化,因而这些空间可能包含以前的数据,此时应对新的文件存储空间进行妥善的管理。此函数返回文件最终的字节数。由于某些原因(例如磁盘空间不够),如果 FCHSIZE( ) 函数所指定的文件句柄无效,或文件为只读文件,则 Visual FoxPro 返回 1。提示:此函数可把文件长度截短为 0。FCLOSE( ) 函数刷新并关闭低级文件函数打开的文件或通信端口。语法FCLOSE

9、(nFileHandle)参数nFileHandle指定要关闭的低级文件句柄。在使用 FCREATE( ) 函数创建文件或在使用 FOPEN( ) 函数打开文件时,可返回数值型的文件句柄。如果用低级文件函数打开某个通信端口,则可以通过分配给此端口的文件句柄将其关闭。在 Visual FoxPro、FoxPro for Windows 和 FoxPro for Macintosh 中,不能使用低级文件函数打开端口。返回值类型:逻辑型说明如果成功地关闭文件,则 FCLOSE( ) 函数返回“真”(.T.),并释放该文件句柄;如果文件不能关闭,FCLOSE( ) 函数返回“假”(.F.)。CLOSE

10、 ALL 命令也用于关闭低级文件。FCREATE( ) 函数创建并打开一个低级文件。语法FCREATE(cFileName , nFileAttribute)参数cFileName指定要创建的文件名称,在文件名前可以加入驱动器指示符和路径。如果没有包括驱动器指示符或路径,则在默认目录下创建该文件。nFileAttribute指定文件的属性。下表列出了可以指定的文件属性。nFileAttribute 文件属性0 (默认值)读写1 只读2 隐含3 只读隐含4 系统5 只读系统6 系统隐含7 只读隐含系统可以使用 DISPLAY STATUS 或 LIST STATUS 命令显示或打印由 FCREA

11、TE( ) 函数创建并打开的文件的信息,每个用低级文件函数打开或创建的文件可由 DISPLAY STATUS 和 LIST STATUS 给出下列信息:? 驱动器、目录和文件名? 文件句柄编号? 文件指针的位置? 读写属性返回值类型:数值型说明如果指定名称的文件已经存在,则改写此文件,并不作任何警告。FCREATE( ) 函数为此文件指定一个文件句柄编号,在其他的 Visual FoxPro 低级文件函数中,可用此编号标识该文件。在创建一个文件时,FCREATE( ) 函数返回该文件句柄编号,如果不能创建文件,则返回 1。提示可以把文件句柄的编号赋给内存变量,从而可以在其他的低级文件函数中用此

12、内存变量访问该文件。不能用 FCREATE( ) 打开通信端口。要打开通信端口,可以使用 FOPEN( )。FCREATE( ) 函数示例IF FILE(errors.txt) & 文件存在吗?gnErrFile = FOPEN(errors.txt,12) & 如果存在,用“读写”方式打开ELSEgnErrFile = FCREATE(errors.txt) & 如果不存在,创建文件ENDIFIF gnErrFile 0 & 检查打开文件时是否有错误WAIT Cannot open or create output file WINDOW NOWAITELSE & 如果没有错误,写文件=FW

13、RITE(gnErrFile , Error information to be written here)ENDIF=FCLOSE(gnErrFile ) & 关闭文件MODIFY FILE errors.txt NOWAIT & 在编辑窗口中打开文件FFLUSH( ) 函数刷新低级函数打开的文件内容,并将它写入磁盘。语法FFLUSH(nFileHandle)参数nFileHandle指定输出到磁盘的刷新文件的句柄。返回值类型:逻辑型说明FFLUSH( ) 函数释放此文件缓冲区所占用的内存。FLUSH 命令与 FFLUSH( ) 函数不同。FLUSH 命令不对低级文件操作,而对表和索引进行操

14、作。FFLUSH( ) 函数示例* 下面的示例打开文件 INPUT.DAT,并向其中写入内容。在写入头 * 两个字符串后,程序刷新缓冲区以保证字符串写入磁盘。然后再* 写入后两个字符串,再次刷新缓冲区,并关闭该文件。*IF FILE(input.dat)gnTestFile = FOPEN(input.dat,2)ELSEgnTestFile = FCREATE(input.dat)ENDIFgnIOBytes = FWRITE(gnTestFile,Test output)gnIOBytes = FWRITE(gnTestFile, for low-level file I/O)glFlus

15、hOk = FFLUSH(gnTestFile)gnIOBytes = FWRITE(gnTestFile,Test output2)gnIOBytes = FWRITE(gnTestFile, for low-level file I/O)glFlushOk = FFLUSH(gnTestFile)glCloseOk = FCLOSE(gnTestFile)MODIFY FILE input.dat NOWAIT NOEDITFGETS( ) 函数从低级文件函数打开的文件或通信端口中返回一连串字节,直至遇到回车符。语法FGETS(nFileHandle , nBytes)参数nFileHan

16、dle指定一个数值型文件句柄,FGETS( ) 函数根据此句柄,从相应的文件或通信端口返回数据。nBytes指定由 FGETS( ) 函数返回的字节数。如果在此之前没有遇到回车符,FGETS( ) 函数返回 nBytes 个字节。如果回车符在 nBytes 个字节当中,则 FGETS( ) 函数返回文件指针起始位置与回车符之间的数据。如果省略 nBytes,则 FGETS( ) 函数默认最多可返回 254 个字节。返回值类型:字符型说明通过使用一串 FGETS( ) 函数,可以逐行阅读文件。FGETS( ) 函数将一串字节作为单个字符串返回,所返回的数据从文件指针的当前位置开始,直至遇到回车符

17、为止,此时文件指针将定位在紧接此回车符的字节上。回车符不包含在所返回的字节中,其中的换行符也被放弃。FGETS( ) 函数示例* TEST.TXT 文件必须存在 *STORE FOPEN(test.txt) TO gnFileHandle & 打开文件STORE FSEEK(gnFileHandle, 0, 2) TO gnEnd & 移动指针到 EOFSTORE FSEEK(gnFileHandle, 0) TO gnTop & 移动指针到BOFIF gnEnd = 0 & 是“空”文件吗?WAIT WINDOW This file is empty! NOWAITELSE & 如果非“空”

18、gcString = FGETS(gnFileHandle, gnEnd) & 存储内容? gcStringENDIF= FCLOSE(gnFileHandle) & 关闭文件 FOPEN( ) 函数打开文件或通信端口,供低级文件函数使用。语法FOPEN(cFileName , nAttribute)参数cFileName指定要打开的文件或通信端口的名称。cFileName 中可包含 Visual FoxPro 搜索路径中未指定的驱动器名、目录名或文件夹。如果不含路径,Visual FoxPro 将在以下位置搜索文件:? 默认目录? SET PATH 命令建立的路径。在 FoxPro for

19、MS-DOS 中,如果 cFileName 是通信端口的名称,该端口必须先用 MS-DOS 的 MODE 命令初始化,然后指定此端口的名称,如 COM1 或 COM2。在 Visual FoxPro、FoxPro for Windows 和 FoxPro for Macintosh 中,端口不能用低级文件函数打开。nAttribute指定打开文件的读写权限或缓冲方案,下表列出可包含在 nAttribute 中的数字及其相应的文件读写权限和缓冲方案。nAttribute 读写权限 缓冲非缓冲0 (默认值)只读 缓冲1 只写 缓冲2 读写 缓冲10 只读 非缓冲11 只写 非缓冲12 读写 非缓冲

20、如果不包含 nArribute 或 nAttribute 等于 0,则以缓冲方式用只读权限打开文件。通信端口总是以非缓冲方式打开。返回值类型:数值型说明不能在 Visual FoxPro、FoxPro for Windows 或 FoxPro for Macintosh 中打开通信端口。如果 FOPEN( ) 函数成功地打开文件或通信端口,则函数返回文件或端口的文件句柄号;如果文件或端口无法打开,则 FOPEN( ) 函数返回 1。提示可以把文件句柄号赋给某个内存变量,从而在其他低级文件函数中通过这个内存变量访问相应文件或通信端口。可以使用 DISPLAY STATUS 或 LIST STAT

21、US 命令显示、打印有关 FOPEN( ) 函数打开的文件的信息:? 驱动器、目录及文件名? 文件句柄号? 文件指针位置? 读写属性FOPEN( ) 函数示例IF FILE(errors.txt) & 文件存在吗?gnErrFile = FOPEN(errors.txt,12) & 如果存在,以读写方式打开ELSEgnErrFile = FCREATE(errors.txt) & 如果不存在,创建文件ENDIFIF gnErrFile 0 & 检查文件打开时的错误WAIT Cannot open or create output file WINDOW NOWAITELSE & 如果没有错误,

22、则写文件=FWRITE(gnErrFile, Error information to be written here)ENDIF=FCLOSE(gnErrFile) & 关闭文件MODIFY FILE errors.txt NOWAIT & 在编辑窗口中打开文件FPUTS( ) 函数向低级文件函数打开的文件或通信端口写入字符串、回车符及换行符。语法FPUTS(nFileHandle, cExpression , nCharactersWritten)参数nFileHandle对 FPUTS( ) 函数要写入数据的文件或通信端口,指定文件句柄号。cExpression指定写入文件或端口的字符表

23、达式。nCharactersWritten指定写入文件或端口的 cExpression 中的字符数目。如果省略 nCharacterWritten 选项,FPUTS( ) 函数将把整个字符表达式 cExpression 写入文件或端口;如果包含 nCharacterWritten 选项,则向文件或端口写入 nCharacterWritten 个字符。如果 nCharacterWritten 小于 cExpression 中的字符数目,只向文件或端口中写入前 nCharacterWritten 个字符;如果 nCharacterWritten 等于或大于 cExpression 中的字符数目,则

24、 cExpression 中所有字符都将写入文件或端口。返回值类型:数值型说明FPUTS( ) 函数返回写入文件或端口的字节数。如果由于某种原因,FPUTS( ) 函数不能向文件或端口写入数据,其返回值为 0。FREAD( ) 函数从低级文件函数打开的文件或通信端口返回指定数目的字节。语法FREAD(nFileHandle, nBytes)参数nFileHandle文件句柄号或要返回数据的通信端口。nBytesFREAD( ) 函数返回的字节数。FREAD( ) 从文件指针的当前位置开始,返回 nBytes 个字节的数据,或是遇到文件尾为止。返回值类型:字符型FREAD( ) 函数示例*下面的

25、示例用 FREAD( ) 函数显示文件内容。如果文件为“空”,* 则提示相应信息。* TEST.TXT 文件必须存在 *STORE FOPEN(test.txt) TO gnFileHandle & 打开该文件STORE FSEEK(gnFileHandle, 0, 2) TO gnEnd & 把指针移到 EOFSTORE FSEEK(gnFileHandle, 0) TO gnTop & 把指针移到 BOFIF gnEnd = 0 & 文件“空”吗?WAIT WINDOW This file is empty! NOWAITELSE & 如果不“空”gcString = FREAD(gnFi

26、leHandle, gnEnd) & 读入内存? gcStringENDIF= FCLOSE(gnFileHandle) & 关闭该文件FWRITE( ) 函数向低级文件函数打开的文件或通信端口写入字符串。语法FWRITE(nFileHandle, cExpression , nCharactersWritten)参数nFileHandle文件句柄号,或要写入字符串的通信端口。cExpression指定 FWRITE( ) 函数写入的字符表达式。nCharactersWritten除非包含 nCharacterWritten,否则 FWRITE( ) 函数向文件或端口写入整个字符表达式。当包含

27、 nCharacterWritten 时,向文件或端口写入 nCharacterWritten 个字符。如果 nCharacterWritten 小于 cExpression 中字符的数目,只向文件或端口写入 nCharacterWritten 个字符;如果 nCharacterWritten 等于或大于 cExpression 中字符的数目,将把 cExpression 中的所有字符都写入文件或端口。返回值类型:数值型说明与 FPUTS( ) 函数不同,FWRITE( ) 函数并不在字符串的尾部放置回车和换行符。FWRITE( ) 函数返回向文件或端口写入的字节数。如果由于某种原因,FWRI

28、TE( ) 函数不能向该文件或端口写入数据,则函数的返回值为 0。FSEEK ( ) 函数在低级文件中移动文件的指针。语法:FSEEK(nFileHandle, nBytesMoved , nRelativePosition)参数nFileHandle 指定文件句柄,FSEEK( ) 函数移动句柄所对应的文件的指针。可以在创建或打开文件时,由 FCREATE( ) 函数或 FOPEN( ) 函数返回句柄号。 nBytesMoved 指定文件指针移动的字节数。如果 nByteMoved 为正,则文件指针向文件尾移动;如果 nByteMoved 为负,文件指针向文件头移动。 nRelativePosition 在文件中把文件指针移动到某个相对位置。默认情况下,文件指针相对于文件头移动,也可以包含 nRelativePosition 使文件指针相对于文件指针的当前位置或文件尾移动。下表列出了 nRelativePosition 可能的取值及相对应的文件指针移动的起始位置。 nRelativePosition移动指针的相对起点。0(默认值)文件头。1文件指针当前位置。2文件尾。FSEEK ( ) 函数示例:=fseek(handle,0,0) &指针移到文件头-

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 成人自考

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com