6Fortran程序设计6文件.ppt

上传人:夺命阿水 文档编号:236082 上传时间:2023-03-10 格式:PPT 页数:30 大小:633KB
返回 下载 相关 举报
6Fortran程序设计6文件.ppt_第1页
第1页 / 共30页
6Fortran程序设计6文件.ppt_第2页
第2页 / 共30页
6Fortran程序设计6文件.ppt_第3页
第3页 / 共30页
6Fortran程序设计6文件.ppt_第4页
第4页 / 共30页
6Fortran程序设计6文件.ppt_第5页
第5页 / 共30页
点击查看更多>>
资源描述

《6Fortran程序设计6文件.ppt》由会员分享,可在线阅读,更多相关《6Fortran程序设计6文件.ppt(30页珍藏版)》请在课桌文档上搜索。

1、八 文件,物理设备与逻辑设备文件的概念外部文件分类文件基本操作(OPEN,WRITE/READ.)文件记录的存取,程序离不开数据,有效组织数据输入是设计和编写程序的基本要求。从键盘输入数据和向屏幕输出数据,适用于数据量比较小的情况,不能与其它软件或程序交换数据信息。从文件输入、向文件输出数据,适用于数据量比较大的情况,便于同其它软件或程序交换数据信息。,物理设备:计算机外部硬件设备,如:磁盘、磁带、键盘、显示器等。文件中数据被存储在某个外部设备上。逻辑设备:在程序中使用的设备描述符号。物理设备与逻辑设备之关系:一个物理设备可定义多个逻辑设备,一个逻辑设备可与多个不同物理设备连接。外部文件:在物

2、理设备上建立的文件。设备描述符为一个整数,称为设备号,通过OPEN语句指定。*、0、5、6为标准设备号。内部文件:在内存上建立的文件。设备描述符为字符型变量名、字符型数组名、字符数组元素名、子串名。,物理设备与逻辑设备,文件的概念,文件:存放在某种存储设备上的一组数据集合,由文件名唯一标识。在FORTRAN的I/O系统中,数据以文件的形式进行存储和交换,操作系统以文件为单位对数据进行管理。文件由若干记录组成。没有记录的文件为空文件。文件操作(读、写)以记录为单位。从文件中一次输入一个记录,向文件中一次输出一个记录。通过 READ 和 WRITE 语句从文件中输出、输入数据。文件分内部文件和外部

3、文件两种文件。,内部文件:存放在内存储器上的文件。内部文件特点:保存小批量数据,不能长期保存。内部文件作用:一般用于少量二进制数据与字符型数据相互转换,以及字符串和合并或截取。如:PROGRAM exam CHARACTER*40 str1,str2 str1=125,250,375 READ(str1,*)i,j,k WRITE(str2,100)i,j,k,i+j+k100 FORMAT(i=,I3,j=,I3,k=,I3,i+j+k=,I3)PRINT*,i,j,k PRINT*,str2 END,外部文件:连接在计算机主机上的一类设备(如:键盘、显示器、打印机等)或存放在外部存储器上的

4、文件。外部文件特点:能长期保存大批量数据。在程序中使用外部文件,必须先用OPEN语句为外部文件指定设备号,建立外部文件与设备号之间的联系。如:OPEN(1,FILE=exam2.in)OPEN(2,FILE=exam2.out)READ(1,*)(score(I),I=1,N)WRITE(2,*)学生成绩有:,在Fortran中有4个预定义的外部文件(设备):,1、顺序存取,从文件的开头一步步向下存取2、直接存取,可以任意跳到文件的任何一个位置来读写,两种文件的结构(存储格式):1、文本文件 字符符号保存,直观;读取时需要转换,占存储空间大2、二进制文件 以二进制代码保存;读取速度快,节省空间

5、,Fortran支持两种文件的存取方式(访问方式):,外部文件分类:,文件的基本操作,OPEN语句文件的打开,例:open(10,file=d:data2006febuwnd.dat,&form=unformatted,status=unknown,&access=direct,recl=144*73*4,&err=100,iostat=iovar,position=asis),WRITE/READ 语句文件的输入输出,例:test01-2,CLOSE 语句文件的关闭,文件读写操作结束后,可通过CLOSE语句将文件关闭。取消逻辑设备符(文件编号)与磁盘上的外部文件之间的关系。CLOSE语句可缺

6、省。,CLOSE(Unit=,ERR=,IOSTAT=,STATUS=),有格式顺序存取一个格式化文件是一个由按顺序写到文件中的有格式记录序列组成的,当要对文件进行读操作时,读取的顺序就是记录在文件中的存放顺序。文件中记录的长度不一定相同,记录也可以是空的。,文件记录的存取,例:从预先准备好的数据文件中输入数据,并输出数据写到文件中已有数据文件:F1.dat写出到数据文件:F2.dat 程序ex601,例:把1到10以及它们的平方数、立方数以表格形式存放到TAB.DAT 文件中。程序把输出的数据重新读出并显示在终端屏幕上以检验文件的内容 程序ex602,有格式直接存取 在格式化直接文件中,所有

7、记录的长度都相同并且可以以任意顺序读写。记录的长度由OPEN语句中的RECL=选项 指定,该长度应该大于或等于最长的记录中的字节数。CR和LF是分隔符,不包括在RECL中。,例:把1到10和它们的平方根存放到一个直接存取文件中,然后随意查找1到10的平方根数。程序ex603,Open(12,file=filen,status=new,access=direct,&form=formatted,recl=16),一旦某个直接访问记录被写入就不能再删除它,但可以覆盖这个记录。在输出到一个格式化直接文件时如果数据没有占满一个记录,则编译系统将在剩下的位置上补以空格,保证文件只包含长度相同的完整的记录

8、。从文件中读数据时,当I/O列表或格式描述符中要读取的数据多于记录中的数据时,编译器也会以空格填充未读数据的变量。可以通过在打开文件的OPEN语句中设置PAD=NO来避免填补空格,此时输入记录必须有和输入列表和格式描述符所要求的一样多的数据,否则会产生错误。PAD=NO对输出没有影响。,例:OPEN(3,FILE=FDIR,FORM=FORMATTED,ACCESS=DIRECT,RECL=10)WRITE(3,(A10),REC=1)RECORD ONEWRITE(3,(I5),REC=3)30303CLOSE(3)END,RECORD ONE ODOA 30303 ODOA,1-10 11

9、 12 13-22 23 24 25-34 35 36,无格式文件的存取(二进制文件)数据处理过程中,输出的大量数据往往并不是给人阅读的,而是作为中间数据为下一次输入作准备,由计算机去读它,用无格式输入输出可以避免格式输入输出中的多余步骤。以计算机内部的二进制代码形式存放,只能存放于磁带或磁盘中,不能在屏幕上显示,也不能输出到打印机打印。,与编辑器有关,VF一般*4,无格式顺序文件 无格式顺序文件中记录的长度可以不同,文件以130或少于130字节为一个物理块进行组织。每个物理块包含着输入到文件中的数据(最多128字节),编译系统在物理块之间加入两个1字节长的长度值以说明每个记录的起始和结束位置

10、。一个逻辑记录包含一个或多个物理块,其大小可在程序中指定,编译系统会相应地使用需要数量的物理块。当创建一个包含多个物理块的逻辑记录时,编译系统把长度值置为129以表示当前物理块的数据和下一个物理块相连接。,无格式直接文件 无格式直接文件是一系列非格式的记录,可以以任意顺序读写记录。记录的长度都相同,由OPEN语句中的RECL=选项 指定。没有字节分隔符或其它表示记录结构的字节,例:OPEN(3,FILE=UDIR,RECL=10,FORM=UNFORMATTED,ACCESS=DIRECT)WRITE(3,REC=3).TRUE.,abcdefWRITE(3,REC=1)2049CLOSE(3)END,练习 1、从键盘输入20个数,以文本方式写入文件data1.txt,从该文件中读取数据,并以二进制格式,直接存取方式写入文件data2.dat2、输入十个学生的学号和一门课的成绩,分别存入顺序文件和直接文件中。每名学生的数据占一个记录。分别对顺序文件和直接文件进行以下操作:1)从数据文件中读入数据,然后按成绩的优劣放在文件中,每个记录包含一个学生的数据,高分在前,低分在后2)把文件中超过平均分担学生学号和成绩打印出来3)把其中一个学号为的成绩更改为而不是原来的数4)插入第11个学生的学号和成绩,插入后成绩仍然按优劣排列5)学号为的学生中途退学,删除该记录,3、课本p267 例,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 在线阅读 > 生活休闲


备案号:宁ICP备20000045号-1

经营许可证:宁B2-20210002

宁公网安备 64010402000986号