您现在的位置:小学生自学网>> 信息>> pascal语言>> 基础教程

pascal第二十讲:文件

作者: 来源: 发布时间:2009年05月12日 点击数:
 

文  件
  文件是一种构造型的数据类型。在程序中都需要产生一些输出,也需要接受若干个输入。这些输入、输出实际上是用文件的方法来实现的,在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)—布尔函数,用于判断行结束否。


[例8、1]把1到100这100个数字写到一个文本文件(ANSWER.TXT)中。
Var I:integer;
 F:test;
Begin
 Assign(f,’answer.txt’);
 Rewrite(f);
 For I:=1 to 100 do writeln(f,I);
 Close(f);
End.
[例8、2]把以下文本文件中的十个整数读出来,然后按大小顺序写回此文件中。
NUMBER.TXT
3 5 7 1
2 8 12 54 14 9
程序如下:
var f:text;
n:array[1..10] of integer;
 I,j:integer;
begin
 assign(f,’number.txt’);
 reset(f);
 read(f,n[1],n[2],n[3],n[4]);
 readln(f);
 readln(f,n[5],n[6],n[7],n[8],n[9],n[10]);
 close(f);
 {此处语句为排序数组N,大家自已加入};
 rewrite(f);
 for I:=1 to 10 do writeln(f,I);
 close(f);
end.

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

上一篇:pascal第十九讲:集合与记录

下一篇:没有了!