学院首页>网络编程>其它编程>第六章 文件管理(一)

第六章 文件管理(一)

作者: 来源: 添加时间:2006-5-24 13:27:51

  6.1.4.4 文件名操作 

  Rename :文件更名,以文件变量为操作对象

  RenameFile :文件更名,参数为文件的原名和新名

  ChangeFileExt :改变文件扩展名

  ExpandFileName :返回文件全路径名

  ExtractFileExt :返回文件扩展名

  ExtractFileName :从全路径名中返回文件名

  ExtractFilePath :返回特定文件的路径 

  6.1.4.5 文件属性 

  FileGetAttr :返回文件属性

  FileSetAttr :设置文件属性 

  6.1.4.6 文件状态 

  FileSize :返回文件对象大小

  IOResult :返回上一次I/O操作的状态

  FileExists :检测文件是否存在 

  6.1.4.7 文件日期 

  DateTimeToFileDate :把Delphi日期格式转换为DOS日期格式

  FileDateToDateTime :把DOS日期格式转换为Delphi日期格式

  FileGetDate :返回文件的DOS日期时间戳

  FileSetDate :设置文件的DOS日期时间戳 

  6.1.4.8 文件读写 

  Read,Readln :从文本或记录文件中读取变量

  Write :将指定变量写入文本或记录文件

  Writeln :将指定变量写入文本文件并写入一个行结束标志

  FileRead :从一个指定文件中读取变量

  FileWrite :向指定文件写入数据 

  FileRead和FileWrite都是以文件句柄为操作对象,主要供系统内部使用。 

  6.1.4.9 目录操作 

  MkDir :创建当前目录的子目录

  ChDir :改变当前目录

  GetDir :返回特定磁盘的当前目录

  RmDir :删除一个空子目录 

  6.1.4.10 磁盘操作 

  DiskFree :返回磁盘自由空间

  DiskSize :返回特定磁盘的大小 

  6.1.4.11 文件查找

  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。在(6.4.4.2)中我们就用到了Windows API函数GetDriveType。有关Windows API函数的情况,请读者参阅相关的资料,这里不再进行介绍。

  6.2 记录文件的应用 

  6.2.1 任务介绍 

  在这一节,我们开发一个系统安全性综合评估方法管理系统。系统安全性在复杂项目开发中十分重要,但由于牵涉面广因而很难获得客观、全面的评估值。鉴于此我们提出多角度、多侧面评估而后定量集成的思路,并在此基础上提出了多种安全性综合评估方法。每种方法由不同部门进行评估而后把结果汇总、综合。

  为此我们定义如下的记录类型: 

  type

  TNature = (Micro,Macro);

  {方法性质,分为微观和宏观两类} 

   TMethod = Record

  Name: string[20]; {方法名}

  Condition: string[40]; {方法适用条件}

  Nature: TNature; {方法性质}

  Result: Real; {方法评估值}

  end; 

  用来记录不同方法的信息。

  由于不同方法的条件、性质不同,因而对工程开发的不同阶段适用方法集也不同。因此需要根据实际情况对方法集进行管理。我们把每一方法作为一条记录,每一方法集作为一个记录文件。下面讨论系统的实现方法。 

  6.2.2 设计基本思路 

  本系统要实现的基本功能是文件的打开、创建、关闭、显示,记录的增加、修改、删除以及结果的综合和显示。为此我们使用了两组按钮分别用于文件和记录的操作, 使用一个StringGrid控件来显示文件内容,使用一个只读编辑框显示结果的综合。

  其中各部件的名称、功能如下表所示: 

  表6.1 主窗口部件的设计

  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

  部件名称 主要属性 备注

  ──────────────────────────────────────

  RecFileForm BorderStyle=bsDialog 文件打开后把文件名附到窗口标题后

  Position=poScreenCenter

  StringGrid1 大小行数动态确定

  HazAttr(编辑框) ReadOnly=True 显示综合结果

  OpenButton TabOrder=0 打开一个记录文件,若文件不存在则创建

  NewButton Caption='打开' 创建一个记录文件,若文件存在则打开

  CloseButton Caption='关闭' 关闭一个已打开的文件

  AddButton Caption='增加' 增加一条记录

  ModifyButton Caption='修改' 修改一条记录

  DeleteButton Caption='删除' 删除一条记录

  CalcuButton Caption='计算' 计算最终结果并显示

  ExitButton Caption='退出' 系统终止。若当前有打开的文件则先关闭

  OpenDialog1 Filter= 选择或输入欲打开的文件

  'Record File(*.Rec)|.Rec

  |Any File(*.*)|*.*'

  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

  另外,StringGrid1、HazAttr的标题用两个标签框(Label)来显示。

  另外我们还需要一个编辑对话框。其中四个编辑框Name、Condition、Nature、 Result分别对应TMethod记录的四个域。

  为协调程序运行,我们定义了一组全局变量。各变量的类型、作用如下表。 

   表6.2 全局变量及其作用

  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

   变量名 类型 作用

  ─────────────────────────────────

  MethodFile MethodFileType 与当前打开文件相关联的文件变量

  FileName string[70] 当前打开文件的文件名

  Count Count 当前打开文件的记录总数

  CurrentRec Integer 当前处理记录号

  FileOpened Boolean 当前是否有文件打开

  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

  记录文件类型MethodFileType的定义为 

  type

  MethodFileType = file of TMethod; 

   布尔变量FileOpened用于控制文件按钮的使能、变灰,记录按钮的反应以及系统结束时是否需要首先关闭文件。 
第 2 页,共 2 页 [1] [2]
站内搜索