pascal记录写入文件应该怎么做
发布网友
发布时间:2024-09-30 22:13
我来回答
共2个回答
热心网友
时间:2024-10-31 20:33
较长,我只复制了一点,其他的在http://www.sxzx.com/pascal/
的文件操作里
在DOS操作中,我们所谈及的文件称之为外部文件。外部文件是存储在外部设备上,如在外存储器上,可由计算机操作系统进行管理,如用dir、type等命令直接对文件进行操作。
Pascal 所谈及的文件,称之为内部文件。内部文件的特点是文件的实体(实际文件)也是存储在外存储器上,成为外部文件的一分子,但在使用时必须在程序内部以一定的语句与实际文件联系起来,建立一一对应的关系,用内部文件的逻辑名对实际文件进行操作。内部文件的逻辑名必须符合Pascal语言标识符的取名规则。
Pascal中的文件主要用于存放大量的数据。如:成绩管理,原始数据很多,使用文件先将其存入磁盘,通过程序读出文件中的数据再进行处理,比不使用文件要来得方便、有效。
Pascal中的一个文件定义为同一类型的元素组成的线性序列。文件中的各个元素按一定顺序排列,可以从头至尾访问每一个元素,从定义上看,文件与数组相似,但它们之间有着明显不同的特征,主要表现在:
(1)文件的每一个元素顺序存贮于外部文件设备上(如磁盘上)。因此文件可以在程序进行前由Pascal程序或用文字编辑软件,如edit、ws、Turbo Pascal的edit命令等产生,或在运行过程中由程序产生,且运行完后,依然存贮在外部设备上。
(2)在系统内部,通过文件指针来管理对文件的访问。文件指针是一个保存程序在文件中位置踪迹的计算器,在一固定时刻,程序仅能对文件中的一个元素进行读或写的操作,在向文件写入一个元素或从文件读取一个元素后,相应的文件指针就前进到下一元素位置。而数组是按下标访问。
(3)在文件类型定义中无需规定文件的长度即元素的个数,就是说元素的数据可动态改变,一个文件可以非常之大,包含许许多多元素,也可以没有任何元素,即为一个空文件。而数组的元素个数则是确定的。
使用文件大致有以下几个步骤;
(1)说明文件类型,定义文件标识符;
(2)建立内部文件与外部文件的联系;
(3)打开文件;
(4)对文件进行操作;
(5)关闭文件。
Turbo Pascal将文件分为三类:文本文件(顺序)、有类型文件(顺序或随机)和无类型文件(顺序或随机)。下面将介绍这些文件及其操作。
一、文本文件
文本文件又称为正文文件或行文文件,可供人们直接阅读,是人机通信的基本数据形式之一。文本文件可用文字编辑程序(如DOS的edit或Turbo Pascal的编辑命令edit)直接建立、阅读和修改, 也可以由PASCAL程序在运行过程中建立。
1、文本文件的定义:
文本文件的类型为TEXT,它是由ASCII字符组成的,是Pascal提供的标准文件之一。标准文件 TEXT已由Pascal说明如下:
TYPE TEXT=FILE OF CHAR;
因此,TEXT同标准类型INTEGER、READ等一样可以直接用于变量说明之中,无需再由用户说明。 例如:
VAR F1,F2:TEXT;
这里定义了两个文本文件变量F1和F2。
2、文本文件的建立
文本文件的建立有两种方法:
(1)直接用Turbo Pascal的Edit建立原始数据文件。
例1 将下表中的数据存入名为A.dat的文件中。
3 4
29 30 50 60
80 90 70 75
60 50 70 45
操作步骤:
①进入Turbo Pascal的编辑状态;
②输入数据;
③存盘,文件名取A.dat。
此时,已将数据存入文本文件A.dat中。文本文件也可用DOS中的Edit等软件建立。
(2)用程序的方式建立中间数据或结果数据文件。
用程序的方式建立文件操作步骤为:
①定义文本文件变量;
②把一外部文件名赋于文本文件变量,使该文本文件与一相应外部文件相关联;
命令格式:ASSIGN(f,name)
f为定义的文本文件变量
name为实际文件文件名
如:ASSIGN(F1,`FILEIN.DAT`)
或:ASSIGN(F1,`PAS\FILEIN.RES`)
这样在程序中对文本文件变量F1的操作,也就是对外部实际文件`FILEIN.DAT`或`FILEIN.RES`的操作。上例中文件`FILEIN.DAT`是存贮在当前目录中,而文件`FILEIN.RES`则是存贮在PAS子目录中。
③打开文本文件,准备写;
命令格式1:REWRITE(f)
功能:创建并打开新文件准备写,若已有同名文件则删除再创建
命令格式2:APPEND(f)
功能:打开已存在的文件并追加
④对文件进行写操作;
命令格式:WRITE(f,<项目名>)
或:WRITELN(f,<项目名>)
功能:将项目内容写入文件f中
⑤文件操作完毕后,关闭文件。
命令格式:CLOSE(f)
参考资料:http://www.sxzx.com/pascal/
热心网友
时间:2024-10-31 20:34
(1)assign过程
形式:assign(f,str);
功能:将文件名字符串str赋给文件变量f,程序对文件变量f的操作代替对文件str的操作。
(2)rewrite过程
形式:rewrite(f);
功能:建立并打开一个新的允许写磁盘文件,其文件名必须先由assign过程赋给变量f。这时,指向文件元素的指针指向第一个元素,rewrite过程所建立的文件为空文件。
(3)reset过程
形式:reset(f);
功能:打开一个已经存在的磁盘文件,其文件名必须先由assign过程赋给变量f,该文件只能读,指向文件元素的指针指向第一个元素。
(4)read过程
形式:read(f,var表);
功能:从磁盘文件f中,将数据依次读到var表表示的各个变量中。
(5)write过程
形式:write(f,var表);
功能:将var表所表示的各个变量的值依次写到磁盘文件f上。
(6)close过程
形式:close(f);
功能:关闭和f关联的磁盘文件,在写操作时自动产生一个文件结束标志。
(7)seek过程
形式:seek(f,n);
功能:把文件指针移到f指明文件的第n个元素。
(8)eof函数
形式:eof(f);
功能:若文件指向文件尾,则返回true,否则返回false。
对有类型文件的写操作步骤为:
assign(f,str);
rewrite(f);
write(f,var表);
close(f);
对有类型文件的读操作步骤为:
assign(f,str);
reset(f);
read(f,var表);
close(f);
例:在磁盘上建立一个1~50的平方数的数据文件zhoufei.dat。要求以一个数,这个数的平方数的格式写入。
program zhoufei;
var f:file of integer;
i:integer;
begin
assign(f,'zhoufei.dat');
rewrite(f);
for i:=1 to 50 do write(f,i,sqr(i));
close(f)
end.