知识大全 文件管理(一)[3]

Posted 文件

篇首语:缥帙各舒散,前后互相逾。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 文件管理(一)[3]相关的知识,希望对你有一定的参考价值。

DELPHI基础教程:文件管理(一)[3]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

   记录文件的打开和创建

  记录文件的打开和创建同文本文件一样也需要关联和初始化两个步骤 同文本文件唯一的不同是不能使用Append过程

  记录文件缺省情况下以读写方式打开 如果想以只读或只写方式打开 则需要修改System单元中定义的变量FileMode的值

  FileMode的取值和意义如下表

  表 FileMode的取值和意义

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

  取值 意义

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

   只读

   只写

   读写

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

  FileMode是一个全局变量 对它的每次修改都将影响所有Reset的操作 因此在打开自己的文件后应还原它的值

  在本系统中 当用户按下 打开 按钮时 首先弹出一个标准文件打开对话框 要求用户输入或选择文件名 确认后如果该文件名的文件存在 则用Reset打开 若不存在则创建 程序清单如下

  procedure TRecFileForm OpenButtonClick(Sender: TObject)

  begin

  if OpenDialog Execute then

  FileName := OpenDialog FileName

  else

  exit;

  AssignFile(MethodFile Filename)

  try

  Reset(MethodFile)

  FileOpened := True;

  except

  On EInOutError do

  begin

  try

  if FileExists(FileName) = False then

  begin

  ReWrite(MethodFile)

  FileOpened := True;

  end

  else

  begin

  FileOpened := False;

  MessageDlg( 文件不能打开 mtWarning [mbOK] )

  end;

  except

  On EInOutError do

  begin

  FileOpened := False;

  MessageDlg( 文件不能创建 mtWarning [mbOK] )

  end;

  end;

  end;

  end;

  if FileOpened = False then exit;

  Count := FileSize(MethodFile)

  if Count> then

  ChangeGrid;

  RecFileForm Caption := FormCaption+ +FileName;

  NewButton Enabled := False;

  OpenButton Enabled := False;

  CloseButton Enabled := True;

  end;

  首先系统试图用Reset打开一个文件 并置FileOpened为True 如果文件不能打开 则引发一个I/O异常 在异常处理过程中 首先检测文件是否存在 若不存在则创建这个文件 否则是其它原因引发的异常 则把FileOpend重置为False 并显示信息 文件不能打开 在文件创建过程中仍可能引发异常 因而在一个嵌套的异常处理中把FileOpened重置为False 并提示信息 文件不能创建

  有关异常处理的内容请读者参看第十二章 这段程序说明 异常处理机制不仅能使我们的程序更健壮 而且为编程提供了灵活性

  当用户按下 创建 按钮时 系统首先弹出一个标准输入框 要求用户输入文件名 确认后系统首先检测文件是否存在 若存在则直接打开 否则创建一个新文件 打开或创建过程导致异常 则重置FileName和FileOpened两个全局变量

  procedure TRecFileForm NewButtonClick(Sender: TObject)

  begin

  FileName := InputBox( 输入框 请输入文件名 )

  if FileName = then Exit;

  try

  AssignFile(MethodFile FileName)

  if FileExists(FileName) then

  begin

  Reset(MethodFile)

  Count := FileSize(MethodFile)

  if Count> then

  ChangeGrid;

  end

  else

  begin

  Rewrite(MethodFile)

  count := ;

  end;

  FileOpened := true;

  Except

  on EInOutError do

  begin

  FileName := ;

  FileOpened := False;

  end;

  end;

  if FileOpened then

  begin

  NewButton Enabled := False;

  OpenButton Enabled := False;

  CloseButton Enabled := True;

  RecFileForm Caption := FormCaption+ +FileName;

  end;

  end;

  当文件打开或创建后 所要做的工作有

  ● 若文件非空 则计算文件长度 并用文件内容填充StringGrid

  ● 创建 打开 按钮变灰 关闭 按钮使能

  ● 把文件名附到窗口标题后

   记录文件的读入和显示

  定义一个全局变量Count用来保存文件中的记录个数 当文件装入时

  Count := FileSize(MethodFile)

  如果Count > 则首先确定StringGrid 的高度 行数 为保证StringGrid 不会覆蓋窗口下面的编辑框 定义一个常量MaxShow 当Count < MaxShow时 记录可全部显示 当Count >= MaxShow时 StringGrid 自动添加一个滚动棒 为保证滚动棒不覆蓋掉显示内容 StringGrid 的宽度应留有余地

  确定StringGrid 高度 行数的代码如下

  With StringGrid do

  if count < MaxShow then

  Height := DefaultRowHeight * (Count+ )+

  else

  Height := DefaultRowHeight * MaxShow+ ;

  RowCount := Count+ ;

  end;

  而后从文件中逐个读入记录并显示在StringGrid 的相应位置

  for i := to Count do

  begin

  Read(MethodFile MethodRec)

  ShowMethod(MethodRec i)

  end;

  ShowMehtod是一个过程 用来把一条记录填入StringGrid 的一行中 对于Name Condition域而言 只须直接赋值即可 而对Nature 域需要把枚举类型值转化为对应意义的字符串( : 微观 : 宏观 ) 而对Result域则需要把数值转化为一定格式的字符串

  Str (MethodRec Result: : ResultStr)

  StringGrid Cells[ Pos] := ResultStr;

  即Result显示域宽为 其中小数点后位数为

cha138/Article/program/Delphi/201311/25242

相关参考

知识大全 文件管理(二)[3]

DELPHI基础教程:文件管理(二)[3]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  函数N

知识大全 文件管理(一)[1]

DELPHI基础教程:文件管理(一)[1]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  文件是

知识大全 文件管理(一)[2]

DELPHI基础教程:文件管理(一)[2]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  文件名

知识大全 文件管理(一)[4]

DELPHI基础教程:文件管理(一)[4]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  增加一

在Wndows资源管理器中,按住__键的同时,用鼠标将选定的文件拖放至同一驱动器的另一文件夹中,可以实现该文件的复

在Wndows资源管理器中,按住_____键的同时,用鼠标将选定的文件拖放至同一驱动器的另一文件夹中,可以实现该文件的复制。A、ShiftB、空格C、AltD、Ctrl答案:D解析:在同一个系统盘下,

知识大全 我需要一份正规的企业信用(合同)管理机构和专(兼)职信用(合同)管理人员任命文件,谁有啊,请帮帮忙

我需要一份正规的企业信用(合同)管理机构和专(兼)职信用(合同)管理人员任命文件,谁有啊,请帮帮忙提供一个任命书样本:人事任命书为适应新形势下公司经营发展需要,经公司管理层会议决议,决定对以下同志进行

知识大全 文件 - 文件的基本概念(一)

  本章简介  在数据处理方面特别是事务型的软件编制工作中都涉及到有关文件的知识有效地组织数据提供方便而又高效地利用数据  信息的方法是文件这一章所要讨论的内容尽管数据管理技术早已从文件系统发展到数据

知识大全 js文件缓存之版本管理详解

  近几个月来的工作是一个交易系统持续改进项目迭代发布周期大约为~周最近一次迭代是V版在礼拜三完成发布不幸的是第二天上午就被老大逮过去原来老大从生产中揪出了一个bug大致的问题如下  系统中有一个常用

备查文件

(1)发行人成立的注册登记文件;(2)主管部门和证券交易所批准发行上市的文件;(3)承销协议;(4)国有资产管理部门关于资产证明估的确认报告;...备查文件备查文件的内容至少包括以下各项:(1)发行人

知识大全 数据结构考研分类复习真题 第十一章 文件[3]

  二判断题  文件是记录的集合每个记录由一个或多个数据项组成因而一个文件可看作由多个记录组成的数据结构【长沙铁道学院一(分)】  倒排文件是对次关键字建立索引【南京航空航天大学一(分)】  倒排序文