第八章:文件管理
公关对话框:
A:打开,保存,打开图像,保存图像对话框
属性:
1:filter:用来过滤文件类型
2:initaldir:对话框打开的初始路径
3:title:对话框打开的标题
4:options:设置对话框的作用及表现形式:
5:Files:选择的文件列表:[通常在设置为多选的时候来用]
6:FileName:选择的单个文件[通常在设置为单选的时候来用
1):ofAllowMultiSelect:是否充许多选
方法:
execute:用来打开对话框,当用户选择一个文件并单击打开时返回true,如果用户选择cancel则返回 false
经常用:if opendialog.execute then
begin
语句体
end;
如何将用户所选择所有文件一个一个找出来:
B:字体对话框:
属性:
font:得到用户所选择的字体
C:颜色对话框:
属性:
color:得到用户所选择的颜色
D:打印对话框:
经常用:if printdialog1.execute then
richedit1.print(self.caption)
E:查找对话框:
属性:
A:findtext:要查找的文本
B:Options:查找的选项(frMatchCase:区分大小写,stWholeWord:全字匹配,frdown:从上到下)
事件:
onfind:当用户单击了"查找"按钮时触发
F:替换对话框:
属性:
A:findtext:要查找的文本
B:ReplaceText:要替换的文本
C:options:(frReplaceAll,全部替换,frReplace:替换当前)
事件:
A:onfind:当用户单击了"查找"按钮时触发
B:当用户单击了"替换"或"全部替换"时触发
文件的操作:
delphi 提供有一组基本的文件处理过程,你可以利用这组函数来访问硬盘中的文件。delphi把文件类型 分成三种,分别是文本文件(text files),类型文件(typed files),无类型文件(untyped files)。
文本文件:
1:文本文件的用途:
你在可能把查询数据库的结果存成一个文本文件,或是把份查询报表的结果直接保存在一文本文件内,你也有可能从别处拿到某个文本文件,而你希望把这个文本文件按照表的字段顺序,将其它写入数据库内。
2:处理函数:
function eof(var F:textfile):boolean---判断文件指针是否到了文件尾
procedure readln(var F:textfile,s:stirng)---读取文本文件每行文本数据
procedure write(var F:textfile,s:string)----将字符串s写入到文件,注意不换行写。
pcocedure writeln(var F:textfile,s:string)---将字符串s写入到文件,要换行
对文件操作的步聚:
1:声明文本文件的变量:
var tf:textfile;
2:打开文件必须调用assignfile函数。
格式:
assignfile(文本文件变量,文本文件路径)
3:设置文件的读写状态:
1):reset:设置为读状态: reset(文件变量)
2):rewrite:设置为写状态:rewrite(文件变量)
3):append:设置为写入状态:append(文件变量)
4:得用函数进行读取。
5:关闭文件 closefile(文件变量)
说明:
1:如果用reset方式打开一个文本文件,则不充许使用write方法来写入,因为文本文件为只读。
2:如果用reset方式打开一个不存在的文件时,会出错
3:如果用rewrite方式打开一个文件时,如果文件不存在则会自动创建一个
无类型文件:(untype file)
无类型文件是数据记录长度不固定的。比如:图像文件,声音文件等。都属于无类型文件。
无类型文件无固定的数据结构,可由使用者决定每个数据记录的长度。它的声明如下。
var
文件变量:file
在对无类型文件使用reset和rewritef过程中,可带第二个参数。用来说明每次用来读或写无类型文件的数据记录的长度。如果缺省则为128B.也就是说,有类型文件的长度是固定的,而无类型文件的长度是自定义的。
无类型文件的读取和写入方法:
procedure blockread(var f:file;var buf;count:integer;var amttransferred:integer)
procedure blockwrite(var f:file;var buf;count:integer;var amttransferred:integer)
其中:
1:buf是用于存储读取或写入的数据的缓冲区。count则确定了每次应读写的记录个数,amttransferred将返回实际读写的记录的个数。在一般情况下。amttransferred则与count相等。但是当文件读完之后
amttransferred将为零。或者是磁盘也满的情况下。amttransferred将小于count。
文件管理函数:
createdir:创建一个新目录
deletefile:删除一个文件
directoryexists:判断目录是否存在。
diskfre:获取硬盘乖余空间。
disksize:硬盘大小总数
expandfilename:取出文件名
extractfiledir:取出路径名称,不含有文件名[也不含有"\"]
extractfiledrive:取出驱动器名称。
extractfileext:取出文件的扩展名。
extractfilepath:取出路径名称[含有"\"]
extractfileNAME:得到文件名
extractfileEXT:得到文件的扩展名
fileopen:返回指定文件的句柄
fileclose:关闭文件
filedatetodatetime:把dos支持的日期类型转换为delphi提供的日期类型。
fileage:返回文件的创建日期[是dos支持的日期]
filedatetodatetime(fileage('c:\wc\test.txt')):来得到文件的创建日期。
filegetdate:返回文件的修改日期。[用来显示文件的修改日期]
---------------------------------------------------------
var
f:thandle;
begin
f:=fileopen('c:\wc\test.txt',fmOpenRead);
showmessage(datetimetostr(filedatetodatetime(filegetdate(f))));
fileclose(f);
------------------------------------------------------------
filecreate:创建一个文件。
fileexists:判断文件是否存在
forcedirectories:创建一新目录,如果父目录不存在,系统会自动创建父目录
getcurrentdir:获取当前的路径。相当于 exectractfiledir(application.execname)
removedir:删除一个不包含任何文件的目录
renamefile:更改文件名称。
findfirst:查找目录下的第一个.
findnext:查找目录下的下一个文件
findclose:关闭文件查找功能,释放使用的内存空间。
文件相关控件:
win3.1中的
A:filelistbox: [filetype:决定了显示不同属性的文件类型:只读,隐藏,系统等]
B:directorybox
C:drivecombobox
D:filtercombobox: