delphi文件操作的总结
Delphi中文件操作的总结
文件是同一种类型元素的有序集合,是内存与外设之间传输数据的渠道。文件的本质是一个数据流,所有的文件实际上是一串二进制序列。
文件管理包括:1、文件操作。2、目录操作。3、驱动器操作。三部分。
1、常见文件操作函数和过程。
1.1、AssignFile过程
作用:将一个外部文件的文件名与一个File类型的变量关联,并对变量进行初始化。
原型:procedure AssignFile(var F; FileName: String);
F:一个File类型的变量,可以是任何数据类型。
FileName:外部文件的文件名。
1.2、FileExists函数
作用:用于测试指定文件名的文件是否存在。
原型:function FileExists(const FileName: String): Boolean;
FileName:文件名。字符串类型。
注意:如果文件存在,返回True;否则,返回False。
1.3、Append过程
作用:为在一个已经存在的文件末尾添加文本做好准备工作。文件是只写方式打开的。
原型:procedure Append(var F: Text);
F: 一个TextFile类型变量。
注意:这是一个对文本类型文件操作的过程。其中变量F必须和外部文件关联。如果F没有与外部文件关联,将抛出异常。如果F已经处于打开状态,则过程会关闭F并重新打开。文件指针位置将被设置在文件末尾。
1.4、Reset过程
作用:对于文本文件,Reset过程将以只读方式打开文件。对于类型文件和无类型文件,Reset过程将以可读写方式打开文件。
原型:procedure Reset(var F [: File; RecSize: Word ] );
F:File类型变量,可以是任何文件类型。
RecSize:文件的大小。它是一个可选的选项,只有当F为无类型文件时才可以被指定。如果F为无类型文件,则RecSize指定了在数据传输过程中使用的记录的大小。如果参数RecSize被省略了,则默认的记录大小为128字节。
注意:当该过程打开文件时,如果文件不存在则产生异常。如果文件已经打开了,则先关闭文件,然后重新打开,并将文件指针放到文件开头处。默认的文件模式(FileMode)为2,即可读写模式。如果文件模式在调用Reset过程前都还未改变,则尝试打开一个只读文件会失败。当调用Reset过程后,如果文件为空,则Eof函数返回True,否则返回False。
1.5、Rewrite过程
作用:对于一个已存在的文件,此操作将使文件被覆盖。对于一个不存在的文件,将创建并打开文件。对于一个已打开的文件,则关闭文件,并重新创建一个新的文件(覆盖原有的)。文件指针也被设置到空文件的开头处。
原型:procedure Rewrite(var F: File [; Recsize: Word ] );
F:File类型变量,可以是任何文件类型。
RecSize:文件的大小。它是一个可选的选项,只有当F为无类型文件时才可以被指定。如果F为无类型文件,则RecSize指定了在数据传输过程中使用的记录的大小。如果参数RecSize被省略了,则默认的记录大小为128字节。
注意:如果F被指定为一个空的文件名,如:AssignFile(F, ‘’),那么当Rewrite过程被调用时,F为标准的输出文件。如果F是文本文件,则F为只写模式。当调用Rewrite过程后,Eof(F)将总是为True。
1.6、Flush函数
作用:用于清空以输出方式打开的文本缓冲区,保证所有写入的字符全部写入外部文件。
原型:function Flush(var t: Text): Integer;
F:F是文本类型变量。
注意:本函数只使用于文本文件的处理。当操作成功时,Flush返回0,否则,它将返回错误代码。当使用Rewrite过程或者Append过程打开一个文本文件用来输出时。Flush函数用于清空文件的缓冲区。这个过程保证了缓冲区的中的所有字符都已经写入外部文件中。对于因为输入而打开的文件,Flush函数不起任何作用。
1.7、Read过程
作用:用于从一个文件中读取数据。
原型:procedure Read(F , V1 [, V2,...,Vn ] );
procedure Read( [ var F: Text; ] V1 [, V2,...,Vn ] );
F:是一个文件变量。
V1……Vn:用于存储从文件中读取的数据。
注意:在Delphi中,Read过程有两种语法,如果参数F是一个有类型文件,过程Read读取一组数据到一个变量中。如果参数F是一个文本文件变量,过程Read读取一个或多个值到一个或多个变量中。
1.8、ReadLn过程
作用:用于从文件中读取一行文本。
原型:procedure ReadLn([ var F: Text; ] V1 [, V2, ...,Vn ]);
V:文本文件变量。
V1……V2:用于存储读取的文本。
注意:在Delphi中,ReadLn过程用于读取文本文件的一行文本,并跳至该文本文件的下一行。
1.9、Write过程
作用:用于向一个文本文件写入数据。
原型:procedure Write( [var F: Text; ] P1 [ , P2,..., Pn] ); //文本类型文件
procedure Write(F, V1,…Vn); //有类型文件
F:文本文件比变量。
P1……Pn:代表向文件中写入的数据。
注意:对于文本文件来说,写入的内容应String类型变量。对于有类型文件来说,写入的必须是某种特定类型的数据。
1.10、WriteLn过程
作用:用来向文本文件中添加一行内容,即在写入内容后面有回车换行符。
原型:procedure WriteLn([ var F: Text; ] P1 [, P2, ...,Pn ] );
F:文本文件比变量。
1.11、Eof函数
作用:用于判断是否到了文件的结尾。
原型:function Eof(var F): Boolean; //用于类型文件和无类型文件
function Eof [ (var F: Text) ]: Boolean; //用于文本文件
典型应用:如果文件为空或当前位置在最后一个字符后,则返回True;否则,返回False。
1.12、Eoln函数
作用:测试文件指针是否指向一行的最后,适用于文本文件。如果当前的位置在一行的末尾或Eof(F)函数返回的是True,则Eoln返回的是True;否则返回False。
原型:function Eoln [(var F: Text) ]: Boolean;
典型应用:在程序中对文本文件进行操作时,有时需要限制数据的读取。如果只读取一行中某个位置到一行结束的部分数据。程序中可以使用Eoln函数进行判断。
1.13、CloseFile过程
作用:用来关闭文件,同事将文件记录盘上的文件与相关文件变量断开联系。
原型:procedure CloseFile(var F);
F:一个文件类型变量
注意:通常来说,CloseFile过程与try…finally…模块结合使用。
1.14、DeleteFile函数
作用:将一个文件从记录盘上删除。
原型:function DeleteFile(const FileName: string): Boolean;
注意:如果文件不存在或无法删除,返回False;否则,返回True。
1.15、Erase过程
作用:用于删除一个已存在的文件。
原型:procedure Erase(var F);
注意:如果文件被打开,先关闭文件再执行删除操作。
1.16、FileGetAttr函数
作用:用于获取一个文件的属性设置。
原型:function FileGetAttr(const FileName: string): Integer;
注意:具体返回值代码参考帮助。
下面我们来总结一下Delphi中文件操作流程。Delphi中把文件分为3种:文本文件、类型文件和无类型文件。文本文件指可以被任意文件编辑器读取的ASCII文件。类型文件包含由程序员定义的数据类型的文件。无类型文件包含了其他所有的文件类型。
1、文本文件
Step 1 调用AssignFile()将文件变量与一个关联起来。如:
AssignFile(MyTextFile,’TextFile.txt’);
Step 2 打开文件。有三种打开文件的方式:1.Rewrite过程创建并打开文件,对于一个已经存在的文件,此操作将使文件被覆盖;2.使用Reset过程只读地打开一个文件;3.使用Append过程向已经存在的文本文件追加文本。
Step 3 对文件进行操作。如Write或Read操作。
Step 4 使用CloseFile来关闭一个已经打开的文件。
下面是一个文本文件操作的示例。
例1:
procedure TForm1.Button1Click(Sender: TObject);
var
MyTextFile: TextFile; //定义变量MyTextFile为文本文件类型
begin
(*步骤1,将文件变量与外部文件联系。相当于为外部文件找了个“替身”*)
AssignFile(MyTextFile, ‘TextFile.txt’);
(*判断操作的文件是否存在,不存在则创建文件。*)
if FileExists(‘TextFile.txt’) then
(*步骤2,打开文件,不过在打开前,最好进行文件是否存在的判断。*)
Append(MyTextFile)
else
Rewrite(MyTextFile);
try
(*步骤3,对文件进行操作。*)
WrtieLn(MyTextFile, ‘在文件末尾添加的文字!’);
Flush(MyTextFile); //清空缓冲区,确保字符串已经写入文件之中。
finally
(*步骤4,关闭打开的文件,CloseFile常与try…finally搭配,用于回收资源 *)
CloseFile(MyTextFile);
end;
end;
2、类型文件
Step 1 定义数据结构
Step 2 调用AssignFile()将文件变量与一个类型文件关联起来。
Step 3 打开类型文件。
Step 4 对类型文件进行操作。
Step 5 关闭已经打开的文件。
下面例子演示了类型文件的操作。
例2:
(*步骤1,定义数据结构。*)
type
TPerson = record
Name: string[20];
Sex: string[4]
Age: Integer;
End;
procedure TForm1.Button1Click(Sender: TObject);
var
PersonFile: file of TPerson; //声明PersonFile变量为TPerson类型文件
Person: TPerson;
begin
(*步骤2,关联文件。*)
AssignFile(PersonFile, ‘Person.dat’);
(*步骤3,打开文件。 *)
Reset(PersonFile);
try
While not Eof(PersonFile) do
(*步骤4,对文件进行操作。*)
begin
Read(PersonFile, Person);
Memo1.Lines.Add(Person.Name);
Memo1.Lines.Add(Person.Sex);
Memo1.Lines.Add(IntToStr(Person.Age));
end;
finally
(*步骤5,关闭文件。*)
CloseFile(PersonFile);
end;
end;
3、无类型文件
先介绍一下无类型文件的相关知识。无类型文件是由数据块序列组成的,每个数据块数列为128字节大小的数据。当然这个数据块大小其实是可以自定义的。无类型文件数据的读写操作可以利用数据块实现。无类型文件的操作步骤与文本文件的操作步骤基本相同,只是两者调用的函数略有差异罢了。
Step 1 调用AssignFile()将文件变量与一个关联起来。
Step 2 打开文件。
Step 3 对文件进行操作。
Step 4 关闭文件,回收资源。
下面例子为无类型文件的“读取”过程。
例3:
procedure TForm1.Button1Click(Sender: TObject);
var
UnTypedFile: file; //定义无文件类型。
Buf: array[0..128] of byte; //定义缓冲区的大小。
Num: Integer;
Str: string;
begin
(*步骤1,指定文件关联。*)
AssignFile(UnTypedFile, ‘UnTypedFile.dat’);
(*步骤2,打开文件。*)
Reset(UnTypedFile);
(*步骤3,对文件进行操作。*)
try
BlockRead(UnTypedFile, Buf, 1, Num);
for I := 0 to 128 do
Str := Str + VarToStr(Char(Buf[I]));
Memo1.Lines.Add(Str);
finally
(*步骤4,关闭打开的文件,回收资源。*)
CloseFile(UnTypedFile);
end;
end;
暂无评论
- 用 户 名:
- csfinal9
- 评论内容:


- 个人资料
- 访问:5504次
- 积分:137分
- 排名:千里之外
- 原创:8篇
- 转载:6篇
- 译文:0篇
- 评论:0条
- 文章搜索
- 阅读排行
- Delphi中文件操作的总结 [转](883)
- 获取 MPQ 的文件列表并解压(651)
- route命令详解(566)
- Delphi技巧集(560)
- (DELPHI)启动或停止服务(433)
- delphi 启动/禁用服务的函数 [转](367)
- 利用Delphi编制IP地址转换器(278)
- 获取公网IP(189)
- 关于共享 DELPHI(175)
- 键值keyCode(138)
- 评论排行
- 键值keyCode(0)
- route命令详解(0)
- Delphi技巧集(0)
- 关于共享 DELPHI(0)
- 文件夹的共享(0)
- WindowsNT下Service的编程(0)
- (DELPHI)启动或停止服务(0)
- 获取公网IP(0)
- 从程序向外拖放文件(0)
- 实现一个程序在另一个程序内运行(0)
- 推荐文章
delphi文件操作的总结的更多相关文章
- Delphi文件操作函数
文件是同一种类型元素的有序集合,是内存与外设之间传输数据的渠道.文件的本质是一个数据流,所有的文件实际上是一串二进制序列.文件管理包括:1.文件操作.2.目录操作.3.驱动器操作.三部分. 1.常见文 ...
- delphi文件操作(比较全)
Delphi中默认有input和output两个文件变量,使用可以不用定义,直接使用. 但: input:只读.output:只写.用时注意以免引起异常. 文件是由文件名标识的一组数据的集合,文件通常 ...
- Delphi 文件操作(路径、目录)
Delphi利用系统环境变量获取常用系统目录 //譬如 %WINDIR% 是表示系统目录的系统变量, 可以这样获取: var s: string; begin s := GetEnvironmentV ...
- delphi 文件操作(信息获取)
delphi获取Exe文件版本信息的函数 Type TFileVersionInfo = Record FixedInfo:TVSFixedFileInfo; {版本信息} CompanyName:S ...
- Delphi 文件操作(4)Reset
procedure Reset(var F [: File; RecSize: Word ] ); { 作用: 对于文本文件,Reset过程将以只读方式打开文件,对于类型文件和无类型文件, ...
- 24篇Delphi文件操作文章
http://www.cnblogs.com/keyvip/category/268043.html
- Delphi的文件操作
参考自:http://www.cnblogs.com/railgunman/articles/1800318.html Delphi 中默认有input 和 output 两个文件变量,使用可以不用定 ...
- Delphi的文件操作(定义,关联,打开,读写,关闭)
参考自:http://www.cnblogs.com/railgunman/articles/1800318.html Delphi 中默认有input 和 output 两个文件变量,使用可以不用定 ...
- delphi关于文件操作集锦
关于文件操作集锦 取得该快捷方式的指向EXE关键词:快捷方式 LNK unit Unit1; interface usesWindows, Messages, SysUtils, Varian ...
随机推荐
- day10(java web之request&respone&访问路径&编码问题)
day10 请求响应流程图 response response概述 response是Servlet.service方法的一个参数,类型为javax.servlet.http.HttpServletR ...
- RedHat 6.6下安装nginx,配置HTTPS
1.安装依赖包 yum -y install pcre-devel openssl-devel zlib-devel 2.下载nginx安装包到服务器上,当前使用版本nginx-1.15.5.tar. ...
- 在HTML代码中要如何插入空格?
超文本标记语言(HTML)会自动忽略空格.平常在编写代码的时候,用空格键.Tab键以及回车键产生的空格,都会被HTML自动忽略.那么我们该用什么方法来实现HTML的空格效果呢?有专门的空格代码吗?不少 ...
- 用通俗的语言解释restful
实现了REST规范的Web API就叫RESTful API. 简单来说:就是用url定位资源,用http描述来操作资源. web是什么:分布式信息系统为超文本文件和其他对象(资源)提供访问入口. 资 ...
- 几种Memcache的状态监控的工具,以及安装和使用【linux系统】
1.Memcache-top的简介及安装和用法 简介:memcache-top是用perl语言编写的,可以运行在term下.它能够像top一样显示各个memcached节点的状态变化,其中包括系统管理 ...
- 浅谈padding
浅谈padding padding是CSS盒子模型的一部分,代表盒子模型的内边距. 用法 padding属性有四个值,分别代表上.右.下.左的内边距. .box { padding: 10px 5px ...
- windows server2003+IIS6+PHP5.3.2
windows下搭建PHP环境有很多种方法.传说,FastCGI下运行PHP 是 兼顾安全和效率的一种.传说.传说.下面讲解在windows server2003 IIS6中安装 PHP 以下文字, ...
- Vue学习笔记之Nodejs中的NPM使用
0x00 NPM是什么 简单的说,npm就是JavaScript的包管理工具.类似Java语法中的maven,gradle,python中的pip. 0x01 NPM安装 傻瓜式的安装. 第一步:打开 ...
- SQL学习笔记四之MySQL数据操作
阅读目录 一 介绍 二 插入数据INSERT 三 更新数据UPDATE 四 删除数据DELETE 五 查询数据SELECT 六 权限管理 一 介绍 MySQL数据操作: DML =========== ...
- 20145326 《Java程序设计》第9周学习总结
20145326 <Java程序设计>第9周学习总结 教材学习内容总结 第十六章 一.JDBC入门 1.JDBC简介 JDBC是用于执行SQL的解决方案,开发人员使用JDBC的标准接口,数 ...
目录视图
摘要视图
订阅