手机站
网通分站
电信主站
密 码:
用户名:
当前位置 : 主页>程序设计>delphi>列表

Delphi文件管理(一)

来源:互联网 作者:west263.com 时间:2008-02-23
西部数码-全国虚拟主机10强!40余项虚拟主机管理功能,全国领先!双线多线虚拟主机南北访问畅通无阻!免费赠送企业邮局,.CN域名,自助建站480元起,免费试用7天,满意再付款! P4主机租用799元/月.月付免压金!

格式化字符串之间的分隔符应读入到一个临时变量中,而字符串与数值、数值与数值间的分隔符读入时会自动识别剔除。对如下一行数据:

Mon 12:10 40 50

定义 

var

Day: string[3] ;

Time: string[5] ;

Num1, Num2: Integer ;

则须用如下的read 语句读入: 

read ( TextFileVar , Day , c , Time , Num1 , Num2 ) ; 

C为一个临时字符变量。 

6.1.1.3 文本文件的编辑 

Delphi中实现对一个文本文件的编辑,只须让其与一个Tmemo控件建立关联即可: 

Memo1.Lines.LoadFromFile ( TextFileName ) ; 

这样在TMemo上所做的一切修改当调用Memo部件的SaveToFile方法后都会反映到文件中去。 

6.1.2 记录文件 

记录文件是一种操作更为灵活的文件类型。它允许同时为读和写打开,而且由于记录文件中每条记录的长度固定,所以可随机存取。

记录文件的类型变量可如下声明: 

var

RecordFileVar: file of RecordType; 

RecordType是一个自定义的记录类型。

有关记录文件的操作我们将在下一节中结合例程进行讨论。 

6.1.3 无类型文件 

无类型文件提供了底层的I/O通道,可用于存取可变长度记录的文件。经常用于文件的复制操作中。由于Delphi提供了更好的方法(见第四节),所以无类型文件很少使用。有兴趣的读者可参看BlockReadBlockWrite两个联机帮助主题。 

6.1.4 Delphi的文件管理标准过程 

根据功能我们把标准过程划分为十一类进行介绍。 

6.1.4.1 文件的打开与关闭 

AssignFile : 把一个外部文件名和一个文件变量相关联

Reset :打开一个存在的文件

Rewrite :创建并打开一个新文件(或覆盖原有文件)

Append : 以添加方式打开一个文件(只适用于文本文件)

CloseFile : 关闭一个打开的文件

FileOpen :打开一个特定的文件并返回文件句柄

FileCreate :创建一个给定文件名的文件并返回文件句柄

FileClose : 关闭一个特定句柄的文件 

后边三个文件主要供系统内部使用,在文件复制的编程中也往往会用到。它们操作的对象是文件句柄而不是文件变量。 

6.1.4.2 文件定位 

Seek : 把文件当前位置移到指定部分

FilePos : 返回文件的当前位置

Eoln : 返回行结束标志

EOF : 返回文件结束标志

FileSeek 改变当前文件指针的位置

SeekFileSeek的区别是:1. Seek仅用于记录文件;2. FileSeek的参数是文件句柄、偏移量、起始位置。其中起始位置有文件首、当前位置、文件尾三种选择。Seek的参数是文件变量、偏移量,偏移量是从文件首开始定位的。3. FileSeek的偏移量以字节数来计算,而Seek是根据记录号进行移动。

SeekFilePos仅用于记录文件。但任何文件都可以看作是基于字节的记录文件。下面一段程序表示了它们的用法。

{ 该例子的设计界面为一个包含TOpenDialog部件的窗体。} 

uses Dialogs;

var

f: file of Byte;

size: Longint;

S: String;

y: Integer;

begin

if OpenDialog1.Execute then

begin

AssignFile(f, OpenDialog1.FileName);

Reset(f);

size := FileSize(f);

S := 'File size in bytes: ' IntToStr(size);

y := 10;

Canvas.TextOut(5, y, S);

y := y Canvas.TextHeight(S) 5;

S := 'Seeking halfway into file...';

文章整理:西部数码--专业提供域名注册虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!