知识大全 文件管理(一)[1]
Posted 文件
篇首语:卧疾丰暇豫,翰墨时间作。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 文件管理(一)[1]相关的知识,希望对你有一定的参考价值。
DELPHI基础教程:文件管理(一)[1] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
文件是同一类型元素的有序集合 是内存与外设间传输数据的渠道 一些外设如显示器 键盘 打印机等都可以看作文件 但最常用的还是磁盘文件 这也是本章我们主要讨论的对象
Delphi继承了Object Pascal的文件管理功能 并有很大的发展 其中最主要的是提供了用于文件管理的标准控件 同时也提供了更多的文件管理函数 利用Delphi的强大功能 开发一个自己的文件管理系统就成为很容易的事
本章首先介绍Delphi文件管理的基本概念和标准过程/函数 并提供了一个记录文件的应用实例 这是从我们实际课题开发中提取出来的 而后介绍Delphi提供的文件控件的使用方法 最后提供的一个综合例程MDI文件管理器则是对Delphi文件管理功能的综合应用
文件类型和标准过程
Delphi同Object Pascal一样支持三种文件类型 即 文本文件 记录文件 无类型文件
文本文件
文本文件类型的变量用如下方法声明
var
TextFileVar: Text ;
文本文件是以行为单位进行读 写操作的 由于每一行长度不一定相同 不能计算出给定行在文件中的确切位置 因而只能顺序地读写 而且文本文件只能单独为读或写而打开 在一个打开的文本文件上同时进行读 写操作是不允许的
文本文件的打开 关闭
文本文件的打开需要两个步骤 ( ) 文件变量与文件名关联 ( ) 初始化读写
联文件变量与文件名调用AssignFile标准过程
AssignFile ( TextFileVar FileName ) ;
FileName 既可以是全路径名 也可以仅是文件名 对于后者系统将在当前目录下查找
AssignFile是Delphi新提供的一个函数 其功能等价于Object Pascal中的Assign 而Assign在Delphi中更多地被用作一个方法名
初始化读写有三种方式
Reset : 为读打开文件并把文件指针移动到文件首
Rewrite : 为写创建一个新文件
Append : 为写打开存在的文件并把文件指针定位在文件尾
当使用Reset或Append过程而文件不存在时将会引发一个I/O异常 有关I/O异常的处理请参看本章例程和第十二章中的介绍
文件的关闭很简单 只须调用CloseFile过程即可
虽然Delphi应用程序在退出时会自动关闭所有打开的文件 但自己动手关闭文件可以确保释放文件句柄 并使程序的可移植性增强
为保持兼容 Delphi也允许用户用Assign建立关联 Close关闭文件
文本文件的读写
从文本文件中读取信息用Read Readln两个标准过程
当读入数值时 Read Readln假定数值是用一个或多个空格分开的 而不是逗号 分号或其它字符 对如下一条语句
Read ( TextFileVar Num Num Num ) ;
如果文件中的数值是
则能够成功读入 而若文件中的数值是
则Read读入 并试图把它转化成一个数值时会引发一个异常
当读入字符是字符串时 Read Readln过程总是读取尽可能多的字符填充到字符串变量中或一直读到行结束符为止 因此从文本文件中读取格式化的字符串数据 必须声明与其长度相匹配的字符串变量 如果要从文件中读取单词 必须先把文件中的每一行读入字符串 然后再从字符串中逐个分析出单词 或者一次只从文本文件中读入一个字符并测试每个字符后是否是单词断开处
格式化字符串之间的分隔符应读入到一个临时变量中 而字符串与数值 数值与数值间的分隔符读入时会自动识别剔除 对如下一行数据
Mon :
定义
var
Day: string[ ] ;
Time: string[ ] ;
Num Num : Integer ;
则须用如下的read 语句读入
read ( TextFileVar Day c Time Num Num ) ;
C为一个临时字符变量
文本文件的编辑
在Delphi中实现对一个文本文件的编辑 只须让其与一个Tmemo控件建立关联即可
Memo Lines LoadFromFile ( TextFileName ) ;
这样在TMemo上所做的一切修改当调用Memo部件的SaveToFile方法后都会反映到文件中去
记录文件
记录文件是一种操作更为灵活的文件类型 它允许同时为读和写打开 而且由于记录文件中每条记录的长度固定 所以可随机存取
记录文件的类型变量可如下声明
var
RecordFileVar: file of RecordType;
RecordType是一个自定义的记录类型
有关记录文件的操作我们将在下一节中结合例程进行讨论
无类型文件
无类型文件提供了底层的I/O通道 可用于存取可变长度记录的文件 经常用于文件的复制操作中 由于Delphi提供了更好的方法(见第四节) 所以无类型文件很少使用 有兴趣的读者可参看BlockRead BlockWrite两个联机帮助主题
Delphi的文件管理标准过程
根据功能我们把标准过程划分为十一类进行介绍
文件的打开与关闭
AssignFile :把一个外部文件名和一个文件变量相关联
Reset :打开一个存在的文件
Rewrite :创建并打开一个新文件(或覆蓋原有文件)
Append :以添加方式打开一个文件(只适用于文本文件)
CloseFile : 关闭一个打开的文件
FileOpen :打开一个特定的文件并返回文件句柄
FileCreate :创建一个给定文件名的文件并返回文件句柄
FileClose :关闭一个特定句柄的文件
后边三个文件主要供系统内部使用 在文件复制的编程中也往往会用到 它们操作的对象是文件句柄而不是文件变量
文件定位
Seek :把文件当前位置移到指定部分
FilePos : 返回文件的当前位置
Eoln : 返回行结束标志
EOF : 返回文件结束标志
FileSeek : 改变当前文件指针的位置
Seek与FileSeek的区别是 Seek仅用于记录文件 FileSeek的参数是文件句柄 偏移量 起始位置 其中起始位置有文件首 当前位置 文件尾三种选择 Seek的参数是文件变量 偏移量 偏移量是从文件首开始定位的 FileSeek的偏移量以字节数来计算 而Seek是根据记录号进行移动
Seek FilePos仅用于记录文件 但任何文件都可以看作是基于字节的记录文件 下面一段程序表示了它们的用法
该例子的设计界面为一个包含TOpenDialog部件的窗体
uses Dialogs;
var
f: file of Byte;
size: Longint;
S: String;
y: Integer;
begin
if OpenDialog Execute then
begin
AssignFile(f OpenDialog FileName)
Reset(f)
size := FileSize(f)
S := File size in bytes: + IntToStr(size)
y := ;
Canvas TextOut( y S)
y := y + Canvas TextHeight(S) + ;
S := Seeking halfway into file… ;
Canvas TextOut( y S)
y := y + Canvas TextHeight(S) + ;
Seek(f size div )
S := Position is now + IntToStr(FilePos(f))
Canvas TextOut( y S)
CloseFile(f)
end;
end
文件删除与截断
Erase : 删除一个存在的文件
DeleteFile : 删除一个文件
Truncate :从文件当前位置将文件截断
Erase与DeleteFile的区别是 Erase以文件变量为参数 当文件不能删除时引起一个异常 DeleteFile以文件名为参数 当文件不存在或不能删除时返回False 而并不引起一个异常
cha138/Article/program/Delphi/201311/25240相关参考
DELPHI基础教程:文件管理(一)[4] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 增加一
DELPHI基础教程:文件管理(一)[3] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 记录文
在Wndows资源管理器中,按住__键的同时,用鼠标将选定的文件拖放至同一驱动器的另一文件夹中,可以实现该文件的复
在Wndows资源管理器中,按住_____键的同时,用鼠标将选定的文件拖放至同一驱动器的另一文件夹中,可以实现该文件的复制。A、ShiftB、空格C、AltD、Ctrl答案:D解析:在同一个系统盘下,
知识大全 我需要一份正规的企业信用(合同)管理机构和专(兼)职信用(合同)管理人员任命文件,谁有啊,请帮帮忙
我需要一份正规的企业信用(合同)管理机构和专(兼)职信用(合同)管理人员任命文件,谁有啊,请帮帮忙提供一个任命书样本:人事任命书为适应新形势下公司经营发展需要,经公司管理层会议决议,决定对以下同志进行
DELPHI基础教程:文件管理(二)[1] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 记录的
DELPHI基础教程:文件管理(三)[1] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 画出每
本章简介 在数据处理方面特别是事务型的软件编制工作中都涉及到有关文件的知识有效地组织数据提供方便而又高效地利用数据 信息的方法是文件这一章所要讨论的内容尽管数据管理技术早已从文件系统发展到数据
在Oracle系统中用户使用特权用户身份(INTERNAL/SYSDBA/SYSOPER)登录Oracle有两种身份验证方法 使用与操作系统集成的身份验证 使用Oracle数据库的密码文件进行
近几个月来的工作是一个交易系统持续改进项目迭代发布周期大约为~周最近一次迭代是V版在礼拜三完成发布不幸的是第二天上午就被老大逮过去原来老大从生产中揪出了一个bug大致的问题如下 系统中有一个常用
手机问题文件管理中的英文是什么意思,华为手机文件管理中的各种英文文件代表什么意思?手机文件夹里的详细英文:1、android_secure是官方app2sd的产物,删了之后装到sd卡中的软件就无法使用