zoukankan      html  css  js  c++  java
  • 文件系统01 零基础入门学习Delphi34

    文件系统01

     

    让编程改变世界

    Change the world by program


     

    Delphi7的文件系统

      通常所说的文件是指存放在磁盘上的一组数据的集合,也称为磁盘文件。 文件的分类:按文件中的数据格式分,文件可分成“文本文件” 和“二进制文件”。  

    [文本文件]

    存放的是与数据对应的字符的ASCII码,一个字符占一个字节。 如有实数-1234.567,要存放在文本文件中,将以字符'-'、'1'、'2'、'3'、'4'、'.'、'5'、'6'、'7'的形式存放,占9个字节。  

    [二进制文件]

    数据都是以二进制形式存放的,数据在文件中存放的格式和它在内存中的格式是一样的。 如 -1234.567 可看成是一个Real型数据,在内存中占4个字节。 可见,二进制形式存放数据占有存储空间较少,但不直观。文本文件占用的存储空间较多,比较直观。  

    使用磁盘文件的步骤

     

    [常识补丁]

    磁盘文件是存放在磁盘上的,而运行的程序只能处理在内存中的数据,不能直接处理磁盘等外存储器上的数据。(小鱼画图时间) 因此只有把磁盘文件中的数据读到内存中,才能在程序中使用。 同样,程序中产生或修改的都是内存中的数据,必须把这些数据写到相应的文件中去,才能使数据保存下来。 可见,磁盘文件在使用之前必须“打开”,在使用完毕后应要“关闭”。  

    [常见的实现方式]

    创建文件

    读取文件

    向一个文件的末尾添加数据

    读文件中某一位置的数据(随机读)

    修改文件中某一位置的数据(随机写)

     

    文件指针

     

    问题:如何在一个文件中间部分写入数据?

    磁盘文件打开后,将会产生一个指针,它指向下一次要读写的数据位置,该指针称为文件指针。 文件指针具有自动移动的功能,文件刚打开时,文件指针指向磁盘文件中的第1个数据,当读取了这个数据后,文件指针自动指向下一个数据。 当把数据写入某个文件时,文件指针总是自动指向下一次要写入数据的位置。  

    Delphi 7中的文件类型及文件类型变量的定义

      在Delphi 7中,经常使用的文件有两类:TextFile(文本文件)和 File(二进制文件) TextFile 文件中包含着我们能读懂的文本。 File 存放形式是二进制,一般用来存放记录类型的数据(称记录型文件)。  

    文本文件变量的定义

    使用文件前需要定义一个文件型的变量,文本文件型变量的定义格式与功能如下:   [定义一个文本文件变量] [codesyntax lang="delphi"]
    Var
        文本文件变量名: TextFile;
    [/codesyntax] 如: [codesyntax lang="delphi"]
    var
        FishcFile:TextFile;
    [/codesyntax]   该语句定义了一个TextFile 类型的文本文件变量,变量名为FishcFile。 该变量可以与一个文本文件相联系,文本文件中可以用来存放字符。    

    文本文件的使用

    再次强调一下:文本文件在使用之前必须要打开(加载到内存),对打开的文件可以进行读写操作,读写过后要关闭。  

    文本文件的打开

    打开文本文件可分成两个步骤:

    一是把文件变量与实际的文本文件关联起来;

    二是打开相应的文本文件。

     

    关联文本文件变量与文本文件

    可通过AssignFile过程来关联文件变量与实际的磁盘文件,该过程的格式与功能如下: [codesyntax lang="delphi"]
    procedure AssignFile(var F; FileName: string);
    [/codesyntax] 如: [codesyntax lang="delphi"]
    AssignFile(FishcFile, ‘Fishc.txt’);
    [/codesyntax]   [说明] 关联了文件类型变量与磁盘文件过后,下面对磁盘文件的操作就可以通过文件型变量来进行了,程序中就不需要再与具体的磁盘文件打交道。  

    打开文本文件

    把磁盘文件与文件型变量关联在一起后,就可以打开文件,打开文件可使用Reset、Rewrite 或Append过程中的一个来进行。   [Reset] 以”只读”方式打开 procedure Reset(var F [: File; RecSize: Word ] ); 看上去很复杂? 没事,其实我们只需要这么调用即可:Rewrite(FishcFile);   [Rewrite] 以”只写”方式创建与打开 procedure Rewrite(var F: File [; Recsize: Word ] ); 注意:如果磁盘上有一个同名的文件,该文件将被删除并创建一个新的空文件。当前文件指针将置于空文件的开头。   [Append] 以”添加”方式打开 procedure Append(var F: Text); 注意:使用这种方式打开文件后,文件指针位于文件的结尾。  

    Pay attention

    参数Word是一个可选参数,当文件是一个无类型的文件时,该参数用来定义无类型文件的尺寸大小。 三种方式,如果指定的文件已经打开,将首先关闭该文件,然后再创建/打开它,当前文件指针将置于空文件的开头。 当使用 Append 和 Reset 的时候,如果打开的文件不存在,将会出现一个错误。  

    文本文件的关闭

    关闭文件使用CloseFile过程: procedure CloseFile(var F); 注意:使用CloseFile 过程关闭文件时,对文件的更新将实际写到磁盘文件中去,并断开文件型变量 F 与实际的磁盘文件之间的联系。  

    [成对出现]

    AssignFile(FishcFile, ‘Fishc.txt'); …… …… CloseFile(FishcFile);  

    文本文件的写操作

      [写操作]  可以使用Write 和Writeln 过程向文本文件中写入数据。 Write 只是把指定数据写到文本文件中去,Writeln 不仅把数据写到文本文件中去,而且还要在写入的数据后加上换行符。 用这两个过程输出的数据可以是以下类型:Char、Byte、Shortint、Word、Longint、Cardinal、Single、Real、Double、Extended、Currency、PChar、AnsiString、ShortString、string、Boolean、Bool。   Write过程的格式和功能如下: [codesyntax lang="delphi"]
    procedure Write( [var F: Text; ] P1 [ , P2,..., Pn] );
    [/codesyntax]   功能:向文件型变量F关联的文件中写入P1,P2,…,Pn 等表达式的值。 另外,在相应的数据后增加一个“:”和一个表示域的宽度的数字可以指定域宽和小数位。 尝试一下:Example(课件及源代码下载   小数位的指定方法是在域宽数字后加“:”再加上表示小数点位数的整数。 尝试一下:Example2(课件及源代码下载 [buy] 获得所有教学视频、课件、源代码等资源打包 [/buy] [Downlink href='http://kuai.xunlei.com/d/LYGFGDFIMYZJ']视频下载[/Downlink]
  • 相关阅读:
    C#磁吸屏幕窗体类库
    准备
    我写的诗
    How to turn off a laptop keyboard
    How to tell which commit a tag points to in Git?
    Why should I care about lightweight vs. annotated tags?
    How to get rid of “would clobber existing tag”
    Facebook, Google and Twitter threaten to leave Hong Kong over privacy law changes
    The need for legislative reform on secrecy orders
    Can a foreign key be NULL and/or duplicate?
  • 原文地址:https://www.cnblogs.com/LoveFishC/p/3847154.html
Copyright © 2011-2022 走看看