FREEPASCAL入门文件输入与输出解析.doc
文本预览下载声明
使用文件输入输出数据
Pascal中可以用标准文件“input”和“output”来实现,它们分别对应标准的输入设备和标准输出设备(可省略不写),这也就是一些程序的首部如下书写的原因:
program ex(input,output);
……
第1节 产生随机数文件
【问题描述】
500个1000以内的随机正整数,存放在data.out文件中,并同时统计从其中大于等于500的数据个数。
【问题分析】
【程序实现】
Program p4_1(input,output);
const n=500; {n为控制随机数个数的变量}
var
i,a,s:integer; {i为循环变量、a为暂时存放随机数的变量、s为=500的数的个数}
f:text; {定义f为文本文件变量}
begin
assign(f,data.out); {关联文件变量f到一个外部文件data.out}
rewrite(f); {以新建写文件的方式打开文件}
randomize; {设置随机种子}
s:=0; {统计变量清零}
for i:=1 to n do
begin
a:=random(1001); {产生随机数}
write(f,a:5); {将随机数写到文件里}
if i mod 10 =0 then writeln(f); {每写10个数换一行}
if a=500 then s:=s+1; {统计=500的数的个数}
end;
close(f); {关闭文件}
write(=500 :, s); {在屏幕上打印=500的数的个数s }
end.
【相关知识】
1pascal程序中写文件的5个步骤
在Pascal程序重创建文件并写入数据要经历5个步骤,即:定义文件变量、关联、写准备、写数据、关闭文件变量。
① 定义:在变量说明部分定义文件变量,变量名自己取,类型定义为text型。
② 关联:将一外部磁盘文件名赋于文本文件变量,使该文本文件与一相应外部磁盘文件相关联。命令格式为:
assign(f,name)
其中f为定义的文本文件变量,name为实际磁盘上文件的文件名
如:assign(file1, fileout.dat )
或:assign(f1,e:\aq2006\a1.out )
磁盘文件如包含路径,如e:\aq2006\a1.out ,则表示将文件存放到e:\aq2006文件夹中,文件名为a1.out,如果不加路径,则存放在pascal工作目录中,如果工作目录没有更改,Free Pascal默认的工作目录一般为“C:\”。
经过关联后,在程序中,如果对文本文件变量file1或f1的操作,也就是对外部实际磁盘文件fileout.dat或e:\aq2006\a1.out的操作。
③ 写准备:如果要向文件中写入数据,则在写入数据之前应先以写入方式打开。具体的写打开方式有两种:
命令格式1:rewrite(f)
功能:创建并打开新文件准备写,若已有同名文件则删除再创建
命令格式2:append(f)
功能:打开已存在的文件并追加
④ 写数据:写入数据时,就使用输出语句write和writeln语句,写入的效果就如同将屏幕上的数据原样写入文件中。只是在使用这两条语句时,必须先使用文件变量指明写入对象。如:
Write(f,s) 或 writeln(file1,a(5),a(6))
前者含义为向文件f中写入变量s的值,后者的含义为向文件file1写入数组变量a(5)、a(6)的值。注意,这些数据实际上是写入这些文件变量所关联的磁盘文件中。
⑤ 关闭:文件写完后,必须关闭,关闭的格式为:Close(f),即关闭文件变量f。
2.查看文本文件
由于文本文件是以ASCII码的方式存储,故查看文本文件的内容是极为方便,在DOS状态可使用 DOS中TYPE等命令进行查看,在Pascal中可以象取程序一样取出文件进行查看。而在windows操作系统中,最方便的方法是按下键盘上空格键两边的windows键,切换到桌面,再找到刚才程序生成的数据文件,用记事本查看该数据文件的内容,如图1.1图4.1所示的就是用记事本打开示例数据文件的效果。
图4.1?????? 用记事本打开数据
3.文本文件的特点
① 行结构
文本文件由若干行组成,行与行之间用行结束标记隔开,文件末尾有一个文件结束标记。由于各行长度可能不同,所以无法计算出给定行在文本文件中的确定位置,从而只能顺序地处理文本文件,而且不能对一文本文件同时进行输入和输出。
② 自动转换功能
文本文件的每
显示全部