在 delphi 语言中,FileClose 与 CloseFile 都用于进行关闭文件操作。两者的区别主要有以下几点: 1、两者的应用对象不同 CloseFile 主要用于文本文件、记录类型文件及无类型文件,需要提供一个 File 类型的参数作为目标对象,这个 File 类型是 delphi 自己实现的; 其函数原型定义如下: ![](http://image104.360doc.com/DownloadImg/2017/03/2016/94403121_1.jpg)
FileClose 主要用于二进制流文件,是基于 Windows API的。在 windows 平台中,最常用的是 handle (句柄)的概念,比如:窗口句柄、按钮句柄、文件句柄等等。 其函数原型定义如下: ![](http://image104.360doc.com/DownloadImg/2017/03/2016/94403121_2.jpg)
从使用的角度来看,如果是简单的文本类型或记录类型,使用 CloseFile 系列的函数比较方便,尤其是记录类型的文件读取。 而从兼容性的角度来看,由于 FileClose 使用 handle 为操作对象,其兼容性更强些。 2、使用的方法不同 (1)使用 CloseFile 系列的步骤如下: 首先,是用 AssignFile 将文件变量与一个文件关联起来; 第二步,Reset、ReWrite、Append打开文件; 第三步,用ReadLn/WriteLn/Read/Write等进行文件内容读写操作; 最后,使用CloseFile关闭已打开的文件。 以下是使用 CloseFile 系列函数读取文件的示例代码: 1 2 3 4 5 6 7 8 9 10 11 | //读取文件
var
F :TextFile; //定义文本文件变量
str : String ;
begin
AssignFile(F, 'c:\test.txt' ); //将磁盘上的文本文件与变量建立关联
Reset(F); //打开文件
Readln(F, str); //读取一行
ShowMessage( '第一行的内容是:' + str);
CloseFile(F); //关闭文件
end ;
|
(2) FileClose 需要以 句柄 为操作对象,其步骤大致如下 1、用 FileOpen 函数,用指定方式打开文件; 2、重新定位文件指针,使其从头开始; 3、进行读取等操作; 4、用 FileClose 关闭文件。 以下是使用 FileClose 系列函数读取文件的示例代码: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | procedure TForm1 . btn_ReadClick(Sender: TObject);
var
fend : integer ;
fOpen : THandle; //文件句柄
buffer : PChar ;
count : integer ;
i: integer ;
begin
fOpen := FileOpen( 'd:\test.txt' ,fmOpenReadWrite); //以读写的方式打开文件test.txt
if fOpen<> - 1 then
begin
fend := FileSeek(fOpen, 0 , 2 ); //将文件指针移动到末尾,为了方便创建数组
FileSeek(fOpen, 0 , 0 ); //将文件指针重新指定到文件开头,为读写文件作准备
buffer := PChar (AllocMem(fend+ 1 )); //为buffer分配内存空间
count := FileRead(fOpen,buffer^,fend); //读取文件内容,返回字符数
FileClose(fOpen); //关闭文件
for i:= 0 to count- 1 do //遍历内存,取出内容
begin
ShowMessage(buffer[i]);
end ;
end
else
ShowMessage( '文件不存在!' );
end ;
|
|