delphi资源文件:delphi文件操作来源: 发布时间:星期四, 2009年2月12日 浏览:332次 评论:0
文件是由文件名标识组数据集合文件通常存放在磁盘上源、学生档案记录、图形、音乐等均可以作为文件存储在磁盘上操作系统是以文件为单位对数据进行管理也就是说如果想读取外存介质上数据必须先按文件名找到所指定文件然后再从该文件中读取数据要向外存介质上存储数据也必须先建立个文件(以文件名标识)才能向它输出数 据 在运行时常常需要将些数据(运行最终结果或中间数据)输出到磁盘上以后需要时再从磁盘中输入到计算机内存这就要用到磁盘文件 1文件类型‘ file是个文件类型介绍说明符通过file可以定义文件变量也可以定义些新类型在Delphi中支持下面3种类型文件:即文本文件、类型文件和无类型文件(也称 2进制文件)下面依次介绍3种文件类型变量定义及使用思路方法 Delphi设计中对任何种文件操作都可以归纳为:建立_打开_读/写_关闭 2文本文件 1.文本文件概念 在Delphi中定义了TextFile类型表示文本文件由ASCII码组成最小存取单位为文本文件也称为ASCII码文件利用常见文字编辑器可以浏览支件内容 文本文件是以行为单位进行读、写操作由于每行长度不定相同不能计算出给定行在文件中确切位置因而只能顺序地读写在个打开文本文件上同时进行读、写操作是不允许 2.文本文件变量定义 定义文件变量语法格式如下: var<文件变量名>:TextFile; 例如VarmyTextFile:TextFile;就定义了个文本文件变量myTextFile下面就可以通过此变量引用个文本文件 3.文本文件使用 (1)文件变量和文件关联 在使用文件变量进行文件操作的前需要将文件变量和要操作文件关联即给文件变量名赋值文件变量赋值可以使用过程AssignFile过程介绍说明语法格式如下: procedureAssignFile(VarF;FileName:); 其中F为文件变量名定义为无类型参数是为了和所有文件类型兼容;FileName是文件名串是包括路径文件全称名例如AssignFile(F’e.\delphi\program\textl.txt’);就将文件变量F和指定文件e:\delphi\program\textl.txt关联起来后面所有对变量f操作都是对指定文件操作 (2)使用文件变量打开文件 使用区别过程打开文件有3种方式: procedureRewrite(varF~File[;recsize:word]); 这个过程创建并打开文件可以对文件进行写这里F是个已经和指定文件名关联文件变量对于个已存在文件此操作将覆盖原文件;如果文件不存在将建立个新空文件若是类型文件(下小节介绍)可用recsize指定大小· [Page] procedureRe(varF:File[;RecSize:Word]); 使用Re过程以读方式打开个文件此时只能从文件中读取数据f为文件变量打开文件后文件指针指向文件开头如果试图用re过程打开个不存在文件时将有I/O产生 procedure.Append(varF:’Fext); 使用Append过程向已存在文件追加文本这个过程仅用于文本文件当用append过程打开文件时文件指针指向文件尾部此后输入数据将添加在文件原有数据后面该过程打开文件(即F关联文件)必须存在否则也将出现I/O (3)读/写文件 ①读取文件内容在以读方式打开文件后可以使用read和readln语句来读取文件内容其声明代码格式分别为: procedureread([varF:’Fext;]V1[V2…Vn]); procedurereadln([varF:’text;]v1[V2···Vn]); 其中F为文件变量v1、v2、…、vn等为需要输入变量其类型可以为串、、整数和实数类型read和readln区别为后者在读取数据后将文件指针移至下行上次读取数据和回车符的间数据被忽略 当读取串时必须用readln过程否则读完行数据后再使用read读取串将得到空串当读取整型和实型数据时文件中数据用空格分隔且必须符合数据格式否则将产生I/O 在读取文件时还必须判断文件指针是否已到文件尾部此时可以用Eof进行判断其声明代码如下: functionEof[(‘varF:’rext)]:Boolean; 当文件指针指到尾部时该返回值为true ②向文件写入数据以写方式打开文件后即可向其中写入数据写人数据使用write和 writeln过程其声明代码如下: procedurewri‘teln([varF:’rext;]p1[p2…pn]); procedurewrite([varF:‘rext;]p1[p2‘·‘pn]); 和read相似p1、p2、…、pn等为需要输出变量可以是串、、整数和实数类型writeln在写入数据后还会附加上回车和换行符而下次要写入数据将写在新行 写人数据时系统自动将数据转化为串形式1)~ASCII码形式保存在文件中 (4)使用文件变量关闭文件 无论是输入或输出在对文件操作完成后都应关闭文件关闭文件使用CloseFile过程其声明代码如下: procedureCloseFile(varF); 关闭文件后系统释放打开文件时使用资源特别是写文件时在write和writeln过程时数据先写入内存缓冲区只有在缓冲区满或关闭文件时才把数据真正写入磁盘文件中因此写完数据后不关闭文件可能丢失数据 [Page] 例2.15使用Rewrite过程在运行当前目录下创建个文本文件file.txt并向文件中增加5行文本 Var textf:TextFile;//定义文件变量textf S:String; i:Integer; 1‘ begin‘ AssignFile(textf’file.txt’);//将文件变量textf和当前目录中“file.txt\"文件关联 Rewrite(textf);//创建文件或打开已存在文件进行覆盖 fori:=1to5do 1● begin S:=’ThisisLine#’; writeln(textfsi); end; CloseFile(textf);//关闭已打开文件textf end. 被创建文件中包含5行文本如第3行为:Thisisline#3 若要向个已存在文件追加新文本应将其中rewrite改为append以上是向文件中写入串和整数其实ObjectPascal对于所有数据类型都可以这样处理下面演示了从文本文件中读取数据思路方法 0
相关文章读者评论发表评论 |