文件系统04

让编程改变世界

Change the world by program


记录型文件的记录数

记录文件中的记录是顺序排列的,每条记录都有一个编号,记录编号从 0 开始。 因此在包含N个记录的文件中,第一个记录的编号(或称记录号)是0,最后一个记录的编号是N-1。   如果想知道文件中有多少记录,可调用 FileSize标准函数,该函数用来返回记录数。

function FileSize(var F): Integer;

移动与检测记录文件的文件指针

无论何时打开文件,也不管是用 Reset 或 Rewrite 过程打开,都可以看为有一个不可见指针都定位在文件首。 提供移动和检测文件指针的位置使随机存取文件中的记录成为可能,记录的随机存取是通过 Seek 过程和 FilePos 函数来实现的。 Seek 过程的作用是把文件指针移动到文件中的指定记录,而 FilePos 函数是返回文件指针当前所指的记录的记录号。   [Seek] procedure Seek(var F; N: Longint); 记录型文件变量 F 关联的文件的文件指针移到编号为N 的记录处,注意第一条记录的编号为0。   [FilePos] function FilePos(var F): Longint; 返回与记录型文件变量F关联的文件的文件指针所处的位置。

读取修改记录

[例如] 要读取与 VFFishcOil 文件型变量相关联的文件的第五条记录,可使用如下语句:

Seek(VFFishcOil, 4);

Read(VFFishcOil, v1);

注意:如果想读一个记录并修改它,然后再用新的信息覆盖旧信息,在写操作之前必须调用 Seek函数以回到上一个记录。 下面的代码用来读取、修改并更新文件中记录: [codesyntax lang="delphi"]

  Seek(VFFishcOil, 1);Read(VFFishcOil, v1);v1.name:= ‘小由鱼’;Seek(VFFishcOil, 1);write(VFFishcOil, v1);

[/codesyntax]   如果忘记第二次调用Seek过程,结果则将用更新后的信息覆盖了第3条记录。这是初学者常犯的错误!

把文件指针定位到文件尾的方法

How to do?! It’s so easy! 想要把记录添加到记录文件的文件尾,在写操作之前,只需用 Seek 过程把文件指针移到文件的最后一条记录之后。 当然我们要先知道这个记录文件有多少条记录,最简单的办法是用 FileSize 获得文件的记录个数,并用这个数值作为 seek 的参数。 [caption id="attachment_625" align="aligncenter" width="300"] 读取并修改记录演示程序[/caption] [buy] 获得所有教学视频、课件、源代码等资源打包 [/buy] [Downlink href='http://kuai.xunlei.com/d/LGLQFXMSXEPR']视频下载[/Downlink]

转载于:https://www.cnblogs.com/LoveFishC/archive/2012/01/08/3847157.html

文件系统04 - 零基础入门学习Delphi37相关推荐

  1. 寄存器(CPU工作原理)04 - 零基础入门学习汇编语言09

    第二章:寄存器(CPU工作原理)04 让编程改变世界 Change the world by program 段的概念 错误认识: 内存被划分成了一个一个的段,每一个段有一个段地址. 其实是: 内存并 ...

  2. DLL技术应用04 - 零基础入门学习Delphi47

    DLL技术应用04 让编程改变世界 Change the world by program 利用DLL实现窗体重用 利用 Delphi 的 DLL 功能,不但能够实现过程和函数重用,而且还可以实现窗体 ...

  3. 函数04 - 零基础入门学习C语言35

    第七章:函数04 让编程改变世界 Change the world by program 上节课的练习简单讲解,给力!! 1.自己实现pow()函数并尝试验证--   2.猜想下sqrt()函数的原理 ...

  4. 指针04 - 零基础入门学习C语言44

    第八章:指针04 让编程改变世界 Change the world by program 小结 归纳起来, 如果有一个实参数组, 想在函数中改变此数组中的元素的值, 实参与形参的对应关系有以下4种情况 ...

  5. 零基础入门学习Python(33)-图形用户界面编程(GUI编程)EasyGui

    用户界面编程,即平时说的GUI(Graphical User Interface)编程,那些带有按钮.文本.输入框的窗口的编程 EasyGui是一个非常简单的GUI模块,一旦导入EasyGui模块,P ...

  6. python零基础入门教程视频下载-Python零基础入门学习视频教程全42集,资源教程下载...

    课程名称 Python零基础入门学习视频教程全42集,资源教程下载 课程目录 001我和Python的第一次亲密接触 002用Python设计第一个游戏 003小插曲之变量和字符串 004改进我们的小 ...

  7. python基础教程视频教程百度云-Python零基础入门学习视频教程全42集百度云网盘下载...

    课程简介 Python零基础入门学习视频教程全42集百度云网盘下载 课程目录 042魔法方法:算术运算 041魔法方法:构造和析构 040类和对象:一些相关的BIF 039类和对象拾遗 038类和对象 ...

  8. 零基础python必背代码-零基础入门学习python 96集全

    零基础入门学习python 96集全 第000讲 愉快的开始(视频+课件)xa0 第001讲 我和Python第一次亲密接触(视频+课件)xa0 第002讲 用Python设第一个游戏(视频+课件+源 ...

  9. 零基础自学python教程-零基础入门学习Python_Python教程

    教程名称:零基础入门学习Python 课程目录: [易源码www.pnp8.com]000愉快的开始 [易源码www.pnp8.com]001我和Python的第一次亲密接触 [易源码www.pnp8 ...

最新文章

  1. Ckeditor通过Ajax更新数据
  2. easyui_动态添加隐藏toolbar按钮
  3. c语言ascw,Asc/AscB/AscW和Chr/ChrB/ChrW函数之间的区别
  4. awk 抓取文件子集
  5. 让python执行完停在解释器窗口
  6. 吃万里路 |甜品店大盘点
  7. 【译】Typeof null 的历史
  8. IE8浏览器缓存问题导致Ajax的GET请求只能执行一次的解决办法
  9. nacicat for mysql查询_navicat for mysql怎么用
  10. JS 总结之关于 this 应该知道的几个点
  11. JavaScript中try, catch, throw的用法
  12. Exchange 2010 无法删除第一个mailbox
  13. python判断性别程序设计_python基础15 ---面像对象的程序设计
  14. 俞扬 新书_哇,太好了...新书
  15. CGContextRef绘图-iOS球形波浪加载进度控件-HcdProcessView详解 1
  16. 少儿编程语言有哪些分类,分别适合多大年龄的学生?
  17. html5 figure和figcaption
  18. CheckListBox的一些用法!
  19. Lync Server 2010拓扑图规划详解
  20. BAPI_GOODSMVT_CREATE MIGO预留成本中心201发货实例

热门文章

  1. 框架下载_最新安卓XDA框架插件下载仓库
  2. ETH基金会社区经理:以太坊改进流程EIP-1正在更新
  3. SAP License:SAP标准教材的编号原则
  4. SAP License:FM-基金管理详解(实例)
  5. 场景欺诈的策略梳理、总结与实操
  6. 关于模型分箱,最容易被忽略的这几点
  7. prd移动端通用产品需求文档+Axure高保真app社交订餐通用prd文档+产品业务说明+PRD功能性需求+移动端公工通用模板说明+需求分析+竞品分析+产品结构图+产品业务流程图+产品信息图+餐饮系统
  8. 本周ASP.NET英文技术文章推荐[??/?? - 09/22]:VS 2008、.NET 3.5、asp:ListView、DotNetNuke、ASP.NET AJAX...
  9. 你可能还不知道的关于JavaScript类型的细节?
  10. iOS CoreData版本升级和数据库迁移