delphifileclose和closefile的区别
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
delphifileclose和closefile的区别
在 delphi 语言中,FileClose 与 CloseFile 都用于进行关闭文件操作。
两者的区别主要有以下几点:
1、两者的应用对象不同
CloseFile 主要用于文本文件、记录类型文件及无类型文件,需要提供一个 File 类型的参数作为目标对象,这个 File 类型是 delphi 自己实现的;
其函数原型定义如下:
FileClose 主要用于二进制流文件,是基于 Windows API的。
在windows 平台中,最常用的是handle (句柄)的概念,比如:窗口句柄、按钮句柄、文件句柄等等。
其函数原型定义如下:
从使用的角度来看,如果是简单的文本类型或记录类型,使用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;。