文   件
 
      文件是一种构造型的数据类型。在程序中都需要产生一些输出,也需要接受若干个输入。这些输入、输出实际上是用文件的方法来实现的,在Pascal中用标准文件“input”和“output”来实现,它们分别对应标准输入设备和标准输出设备(可省略不写)这也就是一些程序的程序书写如下的原因了:
  program ex(input,output);
  ...
  但有时大量数据的读入和输出都是来是磁盘文件,这就要求我们必须熟练掌握对磁盘文件的操作。

  对于我们来说,我们只必须掌握文本文件(或称正文文件,text)的读写即可:

  1.文本文件的定义:
   文本文件不是简单地由某类型的元素序列所组成,它的基本元素是字符,由它们构成行,若干行组成一份原文。由于各行的长度可以不同,所以文本文件只能顺序地处理。文本文件的定义如下:
    var
     fp:text;
  2.文本文件的读操作:
   (1)调用assign过程,把磁盘文件赋予文本文件变量;
      assign(fp,filename);
   (2)调用reset过程,为读操作做准备;
      reset(fp);
   (3)在需要读数据的位置调用read过程或readln过程。
      readln(fp,var1,var2,...,varn);
  3.文本文件的写操作:
   (1)调用assign过程,把磁盘文件赋予文本文件变量;
      assign(fp,filename);
   (2)调用rewrite过程,为读操作做准备;
      rewrite(fp);
   (3)在需要读数据的位置调用write过程或writeln过程。
      writeln(fp,var1,var2,...,varn);
  4.文本文件的关闭操作:
   close(fp);
  5.文本文件的其他操作:
   (1)EOF(fp)—布尔函数,用于判断文件结束否。
   (2)EOLN(fp)—布尔函数,用于判断行结束否。


例:从文件ex.in中输入n个数,并将它们按照逆序输出到文件ex.out中。
  输入文件mx.in的格式:
    第一行是一个数n;
    第二行是n个整数;
    ……
    当读到的n值为0,表示文件结束。

练习:
  1.编写程序从磁盘上读取一个由100个实数组成的实型数据文件(indata.dat),以此文件中所有大于平均值的实数建立一个名为“above.dat”的文件,其余的建立一个名为“rest.dat”的文件。
  2.写一个程序,把文本文件中所有GOOD改为BAD。