学海网 文档下载 文档下载导航
设为首页 | 加入收藏
搜索 请输入内容:  
 导航当前位置: 文档下载 > 所有分类 > IT/计算机 > 第六章 文件管理(二)

第六章 文件管理(二)

文件管理(二)

6.2.7 记录的删除、插入、排序 

  删除一条记录的基本思路是:获取当前记录的位置并把该位置后的记录逐个向前移动。 文件在最后一条记录前截断。 

  for i:=CurrentRec+1 to Count-1 do

begin

seek(MethodFile,i);

read(MethodFile,MethodRec);

seek(MethodFile,i-1);

Write(MethodFile,MethodRec);

end;

Truncate(MethodFile); 

为避免误删除,在进行删除操作前弹出一个消息框进行确认。删除后要更新全局变量的值和显示内容: 

Count := Count - 1;

ChangeGrid; 

完整的程序如下: 

procedure TRecFileForm.DeleteButtonClick(Sender: TObject);

var

NewFile: MethodFileType;

MethodRec: TMethod;

NewFileName: String;

i: Integer;

begin

if FileOpened = False then Exit;

CurrentRec := StringGrid1.Row-1;

if CurrentRec < 0 then Exit;

if MessageDlg('Delete Current Record ?', mtConfirmation,

[mbYes, mbNo], 0) = idYes then

begin

HazAttr.text := '';

for I := CurrentRec+1 to Count-1 do

begin

seek(MethodFile,i);

read(MethodFile,MethodRec);

seek(MethodFile,i-1);

Write(MethodFile,MethodRec);

end;

Truncate(MethodFile);

Count := Count-1;

ChangeGrid;

end;

end;

  这里所显示的删除操作简单明了。但在程序开始设计时我却走了一条弯路,后来发现虽然这种方法用于记录的删除操作显得笨拙、可笑,但却恰恰是记录插入、排序的思想。

  这种思想的核心是创建一个新文件保存更新后的内容。若新文件顺利创建,则删除原文件,否则恢复原来的文件。程序清单如下: 

procedure TRecFileForm.DeleteButtonClick(Sender: TObject);

var

NewFile: MethodFileType;

MethodRec: TMethod;

NewFileName: String;

i: Integer;

begin

if FileOpened = False then Exit;

CurrentRec := StringGrid1.Row-1;

if CurrentRec < 0 then Exit;

if MessageDlg('Delete Current Record ?', mtConfirmation,

[mbYes, mbNo], 0) = idYes then

begin

HazAttr.text := '';

NewFileName := ChangeFileExt(FileName,'.sav');

try

AssignFile(NewFile,FileName);

ReWrite(NewFile);

Except

On EInOutError do

begin

Rename(MethodFile,FileName);

Exit;

end;

end;

for i := 1 to Count do

if I <> CurrentRec+1 then

begin

MethodRec := GridToRec(i);

Write(NewFile,MethodRec);

end;

closeFile(MethodFile);

try

AssignFile(MethodFile,Filename);

Reset(MethodFile);

except

on EInOutError do

begin

DeleteFile(FileName);

AssignFile(MethodFile,NewFileName);

Reset(MethodFile);

Rename(MethodFile,FileName);

Exit;

end;

DeleteFile(NewFileName);

Count:=Count-1;

ChangeGrid;

end;

end;

  对于记录插入,方法基本同上。对于排序,可先将关键域读入排序,而后再按排序结果对应的记录号顺序重写文件。 

6.2.8 结果综合 

  对不同

第1页

TOP相关主题

  • 物理必修二第六章
  • 高中物理必修二第六章
  • 高一物理必修二第六章
  • 生物必修二第六章
  • 育英二外文件管理系统
  • 前尘旧梦第六章
  • 第六章
  • 潜伏之赤途第六章攻略

我要评论

相关文档

  • 6第六章 文件管理(2)

    第六章 文件管理 6.1 文件和文件系统 6.2 文件的逻辑结构 6.3 外存分配方式 6.4 目录管理 6.5 文件存储空间的管理 6.6 文件共享与文件保护 6.7 数据...

  • 第六章 文件管理2

    第六章 文件管理2 暂无评价0人阅读0次下载举报文档文件管理 ? ? ? ? ? ? 概述 文件的结构和存取方式 文件目录 文件...

  • 第六章++文件管理2

    第六章++文件管理2 隐藏>> 第六章 文件管理 文件管理的功能 ? 文件的按名存取 ? 实现文件的共享、保护和保密 ? 文件目录的建立与维护 ? 逻辑文件到物理文件...

  • 第六章 文件管理2

    第六章 文件管理2 操作系统课件 汤子瀛操作系统课件 汤子瀛隐藏>> 第六章 文件管理 张旭 主讲 zhangxu@zzuli.edu.cn 6.1.1 文件及其分类 1.文件的定义 文件...

  • 第六章 文件管理2

    第六章 文件管理2 操作系统课件操作系统课件隐藏>> 第六章 文件管理 文件管理的功能文件的按名存取 实现文件的共享、保护和保密 文件目录的建立与维护 逻辑文件到...

  • 第六章 文件管理

    操作系统 第六章 文件管理 6.1 文件系统的概念 6.2 文件的逻辑组织与存取方法 6.3 文件的物理结构与存储设备 6.4 文件存储空间的管理第 六章文件管理 6.5...

  • 第六章 文件管理

    6.1.3 文件操作★创建文件 ★删除文件★读文件 ★写文件 ★截断文件 ★设置文件的读/写位置 计算机操作系统第六章 文件管理 6.2 文件的逻辑结构两种形式的...

  • 第六章 文件管理

    第六章 文件管理 6.1 文件和文件系统 6.2文件逻辑结构 6.3 外存分配方式 6.4 目录管理 6.5 文件存储空间的管理 6.6 文件共享和保护 6.7 数据一致性...

站点地图 | 文档上传 | 侵权投诉 | 手机版
新浪认证  诚信网站  绿色网站  可信网站   非经营性网站备案
本站所有资源均来自互联网,本站只负责收集和整理,均不承担任何法律责任,如有侵权等其它行为请联系我们.
文档下载 Copyright 2013 doc.xuehai.net All Rights Reserved.  email
返回顶部