问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

pascal中,文件的读入和读出问题

发布网友 发布时间:2023-09-06 21:51

我来回答

1个回答

热心网友 时间:2023-09-26 11:22

分类: 电脑/网络 >> 程序设计 >> 其他编程语言
问题描述:

pascal中,文件的读入和读出问题(例如给你一组数据存在1.txt中,要求在2.txt中输出),怎样编程来实现?

解析:

一、文件的概念

文件是按照其内在的逻辑联系分别组织在一起,构成不同的数据 *** 。它的名字就是文件名。使用文件有以下几点好处:

(1)文件可以永久保存,其中的数据不会因为应用程序的结束或关机而消失。

(2)文件中的数据可以为多个应用程序所共享。

(3)文件中的数据可以多次重复使用。

(4)文件中的存放数据的数量在理论上没有*。

在Turbo Pascal语言中,文件是由一系列基本数据元素排列而成的,这些数据元素的数据类型是相同的,但通常有不同的取值。文件的基本数据元素的数据类型称为文件的基类型。文件中所含的数据元素的个数称为文件的长度。文件的长度和文件所占有的字节数可能不同。文件中元素的个数即文件的长度不是固定不变的。

用于暂时存放文件中的数据的内存区称为文件缓冲区。对于文件的操作至少要由以下三个过程:

(1)打开一个文件

(2)对文件进行操作(读或写)

(3)关闭文件

按照对文件的读写方式,可以把文件分为顺序文件和随机文件。顺序文件的特点是对文件的读或写操作都只能按文件中元素的顺序,所以顺序文件的读和写不能交叉进行。随机文件的特点是可以直接对文件中某个元素进行读或写,而不需要先对它前面的元素作相同的操作。对于随机文件的读和写可以交叉进行。

Turbo Pascal语言中,按照文件的存储方式可以把文件分为文本文件和类型文件。若文件中的数据都是以ASCII码形式存储的,则这种文件称为文本文件。若文件中的数据都是以非ASCII码形式存储的,则这种文件称为类型文件。Turbo Pascal中文本文件都是顺序文件,类型文件都是随机文件。

二、类型文件

按数据的二进制代码形式存放时的文件称为类型文件。如果再按照组成类型文件的元素数据结构分,又可以分为有类型文件和无类型文件。其定义为:

type 类型名=file of 基类型;{有类型文件}

类型名=file; {无类型文件}

例如:var f:file of integer;

说明f为名的变量对应文件将用于存放整数。

var g:file;

说明g为名的变量对应文件的数据无任何规定。

Turbo Pascal有关类型文件的函数和过程

(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.

三、文本文件

文本文件的内容有ASCII字符集中的字符组成,因此文本文件也称ASCII码文件,它可以用DOS中的type命令列出内容。文本文件具体是由一系列行组成,每一行可以包括0个或多个字符型成分,并以也行结束符结尾,文本文件类型TXT和类型文件file of char区别在于后者不包含行结束符。

文本文件和类型文件在读写上的差别在于前者只能按次序顺序读写,而后者可以不按照次序读写。适用文本文件的函数和过程除了用于类型文件操作的过程和函数外主要还有:

(1)readln过程

形式:readln(f,var表);或readln(f);

功能:从磁盘文件f中,将数据依次读到var表表示的各变量中(其中readln(f)只读数据),并将文件指针移到行结束符后,就是下一行开头。

(2)writeln过程

形式:writeln(f,var表)或writeln(f);

功能:将var表所表示的各个变量的值依次写到磁盘文件f上去(writeln(f)不写值),然后再写一个行结束符。

(3)append过程

形式:append(f);

功能:打开一个已经存在的磁盘文件,其文件名必须和assign过程中的变量名f相对应,该文件只能写,此时文件指针指向文件尾。

(4)eoln函数

形式:eoln(f);

功能:若文件指针指向行结束符或文件结束符,则返回true,否则返回false。

对文本文件的写操作步骤:

assign(f,str);

rewrite(f); 或append(f);

write(f,var表);或writeln(f);

close(f);

对文本文件的读操作步骤:

assign(f,str);

reset(f);

readln(f,var表);或readln(f);

close(f);

例:随机产生30个随机整数存放于文本文件zhoufei.txt 中

program zhoufei;

const n=30;

var ra:text;

i:integer;

begin

randomize;

assign(ra,'zhoufei,txt');

rewrite(ra);

for i:=1 to n do writeln(ra,random(100));

close(ra)

end.

附陶陶摘苹果

program apple;

var a:array[1..10] of integer;

n,i,total:integer;

begin

assign(input,'apple.in');reset(input);

assign(output,'apple.out');rewrite(output);

for i:=1 to 10 do read(a[i]);

readln(n);

n:=n+30;

for I:=1 to 10 do

if n>=a[i] then inc(total);

writeln(total);

close(intput);

close(output);

End.
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
抹完水泥墙多久能刮腻子 水泥墙抹完后需要多久刮腻子? 水泥抹墙多久能刮腻子 水泥多久能刮腻子 刚抹完的水泥墙几天能刮腻子 墙面多久能刮腻子 水泥墙多久可以刮腻子 砌完水泥多久刮腻子 水泥砌好后什么时候可以刮腻子 ...40个学分,托福110分,转学去美国哥伦比亚大学希望大吗? 你好,哥伦比亚大学排名怎么样?小白,想去哥伦比亚大学读研 真我Q3T屏幕是什么材质-是LCD屏还是OLED屏 skip超出总记录会指向文件尾吗? 下列关于文件的叙述中,错误的是( )。A.使用Append方式打开文件时,文件指针被定位于文件尾 以追加模式打开文件时,文件指针指向文件尾。() 如何证实自己是被诬陷的 开江县实验小学校歌 牛发烧是怎么回事,怎么去治疗 空调漏水是什么问题 怎么解决(家用壁挂式空调室内机漏水怎么处理) C语言~A语句为什么是非法的?? C语言~ 这个题是什么意思 看不懂 麻烦解释一下~非法引用是什么 这个题为什么是c[7] 在word中表格中突然出现一个有蓝色长条,删也删不掉,不是标记不是底纹,这个什么,要怎么样修改 word文档表格里一改字体跳就会跳出一条蓝色线和一个对话框,什么原因??请高手解决。 美的电饭煲fd402怎样做饭,做稀饭时按下了“稀饭”,为什么就不能按“精煮”了?精煮是什么意思啊? 美的MB-FD30U电饭煲如何使用?上面共7个键,保温,预约,稀饭,粥/汤,标准煮,快速煮,精华煮。 美的智能电饭煲精华煮煮出的饭,为什么是散的?一点没有饭香 汽车上的pwr是什么意思 原核生物如何形成转录起始复合物 龙卷风是不是积极向上的歌曲 男生用邓紫棋的龙卷风这首歌作为彩铃好么? 奇峰八面玉玲珑解释 求一张cad机器虎钳装配图 《米小圈上学记》有什么特色?为什么孩子们都喜欢看? 白事的份子钱可以后补吗? 冰箱开门漏氟怎么处理 神经衰弱和植物神经紊乱,输液能好吗 一个室友,我是男生,他让我帮他倒洗脚水, 彝族礼仪 彝族彝族人弟弟家的孩子称呼哥哥家的孩子,比自己年龄小的为什么还要叫哥哥呢 什么是太空沙 造梦西游3沙僧要多少级才能打过金角大王? 造梦西游3沙僧多少等级最好打金角大王 造梦西游3唐峥40级能打过金角大王吗? 造梦西游3怎么打金角大王?? 退热栓一天可以用几次 索尼S754为什么把m4a格式的歌曲拖进去时说不支持,显示跳过的界面 跪求高手!在itunes给iphone4转换铃声格式m4a改成m4r之后老是显示无法使用歌曲因为找不到原始文件 手机如何转换音乐格式为m4a?我是想把唱吧录的歌上传到全民k歌,替换成功后一直显示上传失败 有些歌曲截曲时显示暂不支持m4a模式,为什么 炮甲珠那里有卖的 香菇与基围虾相克吗 香茹青花红萝卜基尾虾能不能?