DELPHI基础教程:文件管理(一)[2]

如题所述

第1个回答  2022-10-04

   文件名操作

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

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

  ChangeFileExt :改变文件扩展名

  ExpandFileName :返回文件全路径名

  ExtractFileExt :返回文件扩展名

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

  ExtractFilePath :返回特定文件的路径

   文件属性

  FileGetAttr :返回文件属性

  FileSetAttr :设置文件属性

   文件状态

  FileSize :返回文件对象大小

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

  FileExists :检测文件是否存在

   文件日期

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

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

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

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

   文件读写

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

  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 = (Micro Macro)

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

  TMethod = Record

  Name: string[ ]; {方法名}

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

  Nature: TNature; {方法性质}

  Result: Real; {方法评估值}

  end;

  用来记录不同方法的信息

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

   设计基本思路

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

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

  表 主窗口部件的设计

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

  部件名称               主要属性                              备注

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

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

    Position=poScreenCenter

  StringGrid    大小行数动态确定

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

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

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

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

  AddButton         Caption= 增加           增加一条记录

  ModifyButton     Caption= 修改           修改一条记录

  DeleteButton     Caption= 删除           删除一条记录

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

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

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

   Record File(* Rec)| Rec

  |Any File(* *)|* *

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

  另外 StringGrid HazAttr的标题用两个标签框(Label)来显示

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

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

   表 全局变量及其作用

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

  变量名 类型 作用

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

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

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

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

  CurrentRec Integer 当前处理记录号

  FileOpened Boolean 当前是否有文件打开

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

  记录文件类型MethodFileType的定义为

  type

  MethodFileType = file of TMethod;

  布尔变量FileOpened用于控制文件按钮的使能 变灰 记录按钮的反应以及系统结束时是否需要首先关闭文件

lishixinzhi/Article/program/Delphi/201311/25241

相似回答