文件名操作
Rename :文件更名以文件变量为操作对象
RenameFile :文件更名参数为文件的原名和新名
ChangeFileExt :改变文件扩展名
ExpandFileName :返回文件全路径名
ExtractFileExt :返回文件扩展名
ExtractFileName :从全路径名中返回文件名
ExtractFilePath :返回特定文件的路径
文件属性
FileGetAttr :返回文件属性
FileSetAttr :设置文件属性
文件状态
FileSize :返回文件对象大小
IOResult :返回上一次I/O操作的状态
FileExists :检测文件是否存在
文件日期
DateTimeToFileDate :把Delphi日期格式转换为DOS日期格式
FileDateToDateTime :把DOS日期格式转换为Delphi日期格式
FileGetDate :返回文件的DOS日期时间戳
FileSetDate :设置文件的DOS日期时间戳
文件读写
ReadReadln :从文本或记录文件中读取变量
Write :将指定变量写入文本或记录文件
Writeln :将指定变量写入文本文件并写入一个行结束标志
FileRead :从一个指定文件中读取变量
FileWrite :向指定文件写入数据
FileRead和FileWrite都是以文件句柄为操作对象主要供系统内部使用
目录操作
MkDir :创建当前目录的子目录
ChDir :改变当前目录
GetDir :返回特定磁盘的当前目录
RmDir :删除一个空子目录
磁盘操作
DiskFree :返回磁盘自由空间
DiskSize :返回特定磁盘的大小
文件查找
FileSearch :查找目录中是否存在某一特定文件
FindFirst :在目录中查找与给定文件名(可以包含匹配符)及属性集相匹配的第一个文件
FindNext :返回符合条件的下一个文件
FindClose :中止一个FindFirst / FindNext序列
有关文件管理标准过程/函数的更详细资料请查阅Delphi相关的Help主题以上的大部分过程在后面都有应用实例读者可以从中体会其用法
在Delphi的联机帮助Help系统中把有关文件的过程/函数分为两个主题I/O Routine和File_Management Routine前者大部分以文件变量为操作对象而后者大部分以文件名或文件句柄为操作对象这里为了方便读者的使用我们按功能重新进行了分类在下一节中主要应用I/O Routine主题下的过程而在第四节的综合举例中主要应用File_Management Routine主题下的过程
另外Windows提供了许多有关文件管理的API函数虽然在一般情况下利用Delphi提供的函数已足够解决问题但有时候仍然需要使用Windows API在()中我们就用到了Windows API函数GetDriveType有关Windows API函数的情况请读者参阅相关的资料这里不再进行介绍
记录文件的应用
任务介绍
在这一节我们开发一个系统安全性综合评估方法管理系统系统安全性在复杂项目开发中十分重要但由于牵涉面广因而很难获得客观全面的评估值鑒于此我们提出多角度多侧面评估而后定量集成的思路并在此基础上提出了多种安全性综合评估方法每种方法由不同部门进行评估而后把结果汇总综合
为此我们定义如下的记录类型
type
TNature = (MicroMacro)
{方法性质分为微观和宏观两类}
TMethod = Record
Name: string[]; {方法名}
Condition: string[]; {方法适用条件}
Nature: TNature; {方法性质}
Result: Real; {方法评估值}
end;
用来记录不同方法的信息
由于不同方法的条件性质不同因而对工程开发的不同阶段适用方法集也不同因此需要根据实际情况对方法集进行管理我们把每一方法作为一条记录每一方法集作为一个记录文件下面讨论系统的实现方法
设计基本思路
本系统要实现的基本功能是文件的打开创建关闭显示记录的增加修改删除以及结果的综合和显示为此我们使用了两组按钮分别用于文件和记录的操作 使用一个StringGrid控件来显示文件内容使用一个只读编辑框显示结果的综合
其中各部件的名称功能如下表所示
表 主窗口部件的设计
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
部件名称 主要属性 备注
──────────────────────────────────────
RecFileForm BorderStyle=bsDialog 文件打开后把文件名附到窗口标题后
Position=poScreenCenter
StringGrid 大小行数动态确定
HazAttr(编辑框) ReadOnly=True 显示综合结果
OpenButton TabOrder= 打开一个记录文件若文件不存在则创建
NewButtonCaption=打开 创建一个记录文件若文件存在则打开
CloseButton Caption=关闭关闭一个已打开的文件
AddButtonCaption=增加 增加一条记录
ModifyButtonCaption=修改 修改一条记录
DeleteButtonCaption=删除 删除一条记录
CalcuButton Caption=计算 计算最终结果并显示
ExitButton Caption=退出 系统终止若当前有打开的文件则先关闭
OpenDialog Filter= 选择或输入欲打开的文件
Record File(*Rec)|Rec
|Any File(**)|**
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
另外StringGridHazAttr的标题用两个标签框(Label)来显示
另外我们还需要一个编辑对话框其中四个编辑框NameConditionNature Result分别对应TMethod记录的四个域
为协调程序运行我们定义了一组全局变量各变量的类型作用如下表
表 全局变量及其作用
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
变量名 类型 作用
─────────────────────────────────
MethodFile MethodFileType 与当前打开文件相关联的文件变量
FileName string[] 当前打开文件的文件名
Count Count 当前打开文件的记录总数
CurrentRec Integer 当前处理记录号
FileOpened Boolean 当前是否有文件打开
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
记录文件类型MethodFileType的定义为
type
MethodFileType = file of TMethod;
布尔变量FileOpened用于控制文件按钮的使能变灰记录按钮的反应以及系统结束时是否需要首先关闭文件
[] [] [] []