fortran基础第12章_第1页
fortran基础第12章_第2页
fortran基础第12章_第3页
fortran基础第12章_第4页
fortran基础第12章_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第12章 文 件12.1 文件的基本概念文件的基本概念n记录n文件n逻辑设备 12.1.1 记录记录n记录是字符的序列或数值的序列。记录是字符的序列或数值的序列。 格式记录:格式记录:格式记录是一个有序的格式化数据序列,格式记录是一个有序的格式化数据序列,每个记录以每个记录以“回车回车” 符作为结束标志,在输入输出符作为结束标志,在输入输出时,格式记录中的数据要经过编辑转换,以时,格式记录中的数据要经过编辑转换,以ASCII码或其它信息交换码的方式进行传输。数据的格式码或其它信息交换码的方式进行传输。数据的格式由用户指定或者由编译系统规定。由用户指定或者由编译系统规定。无格式记录:无格式记录:

2、是由二进制代码直接传输,在输入输是由二进制代码直接传输,在输入输出时,无需作格式转换,因而传输速度较快,占用出时,无需作格式转换,因而传输速度较快,占用的磁盘空间也较小。的磁盘空间也较小。文件结束记录:文件结束记录:是文件结束的一种标志,由系统和是文件结束的一种标志,由系统和语言本身来规定。在输入输出时,文件结束记录并语言本身来规定。在输入输出时,文件结束记录并不作为数据的内容处理。该记录可由语句设置,或不作为数据的内容处理。该记录可由语句设置,或者由系统在文件操作时自动加以处理。者由系统在文件操作时自动加以处理。 12.1.2 文件文件 n文件是记录的序列文件是记录的序列 n文件的分类:文件

3、的分类:内部文件和外部文件内部文件和外部文件有格式文件和无格式文件有格式文件和无格式文件顺序文件和直接文件顺序文件和直接文件新文件和老文件新文件和老文件 1.外部文件和内部文件外部文件和内部文件 n按文件的按文件的存储位置存储位置,可分为外部文件和内,可分为外部文件和内部文件。部文件。外部文件外部文件是存放在外部存储介质是存放在外部存储介质(如软盘、硬如软盘、硬盘、磁带等盘、磁带等)上的文件,或者是外部设备本身上的文件,或者是外部设备本身(显示器、打印机等显示器、打印机等)。内部文件内部文件是存放在内存中一个字符变量、字符是存放在内存中一个字符变量、字符数组或字符数组元素。如果内部文件是一个字

4、数组或字符数组元素。如果内部文件是一个字符变量或字符数组元素,则它只有一个记录。符变量或字符数组元素,则它只有一个记录。如果内部文件是一个字符数组,它的记录数是如果内部文件是一个字符数组,它的记录数是数组元素的个数。数组元素的个数。 2.顺序存取文件和直接存取文件顺序存取文件和直接存取文件 n按文件的存取方式存取方式,可分为顺序存取文件分为顺序存取文件和直接存取文件。和直接存取文件。顺序文件顺序文件,文件中的所有记录按存储的先后次,文件中的所有记录按存储的先后次序排列,读写时必须且只能按顺序进行。序排列,读写时必须且只能按顺序进行。直接存储文件又称直接存储文件又称随机文件随机文件,文件中的所有

5、记,文件中的所有记录都以自然数进行编号,且每个记录都有相同录都以自然数进行编号,且每个记录都有相同长度。读写时可以根据程序需要直接对某个指长度。读写时可以根据程序需要直接对某个指定的记录进行操作,而不必每次都从文件的开定的记录进行操作,而不必每次都从文件的开始处进行存取。始处进行存取。 3. 格式文件和无格式文件格式文件和无格式文件 n按文件记录的按文件记录的格式格式划分,可分为格式文件和无格划分,可分为格式文件和无格式文件。式文件。n由格式记录组成的文件称为由格式记录组成的文件称为格式文件格式文件,由无格式,由无格式记录组成的文件称为记录组成的文件称为无格式文件无格式文件。用格式记录组。用格

6、式记录组成的格式文件不能用无格式方式读入,反之,用成的格式文件不能用无格式方式读入,反之,用无格式记录组成的文件也不能用有格式方式读入。无格式记录组成的文件也不能用有格式方式读入。对于不同的外部设备要选择适当的文件形式。打对于不同的外部设备要选择适当的文件形式。打印机、显示器一般只能使用格式文件,格式文件印机、显示器一般只能使用格式文件,格式文件可以直接阅读。无格式文件是不可读文件,但由可以直接阅读。无格式文件是不可读文件,但由于它不需要进行数据转换,因而传送速度很快。于它不需要进行数据转换,因而传送速度很快。 4. 文件的其他分类文件的其他分类 n根据文件的根据文件的属性属性划分:划分:在打

7、开某一文件时,该文件就已经存在,在打开某一文件时,该文件就已经存在,我们称其为我们称其为老文件老文件;在打开某一文件时,该文件并不存在,在打开某一文件时,该文件并不存在,我们称其为我们称其为新文件新文件;n当打开某一文件时缺省文件名,则编当打开某一文件时缺省文件名,则编译系统将建立一个临时文件,该文件译系统将建立一个临时文件,该文件在程序运行结束时要被删除。在程序运行结束时要被删除。 12.1.3 逻辑设备逻辑设备 每一个文件在打开时应与一个特定的逻辑设备号每一个文件在打开时应与一个特定的逻辑设备号相连接,不管这个文件是内部文件还是外部文件。相连接,不管这个文件是内部文件还是外部文件。设备号有

8、三种形式:设备号有三种形式:1. 特殊设备号:特殊设备号:特殊设备号由系统预先定义,例如特殊设备号由系统预先定义,例如用设备号用设备号5定义键盘,设备号定义键盘,设备号6定义显示器,而星定义显示器,而星号号“*”既可定义键盘又可定义显示器,在程序设既可定义键盘又可定义显示器,在程序设计中这些设备不须打开就可以直接使用。计中这些设备不须打开就可以直接使用。2. 内部文件的设备号:内部文件的设备号:字符型变量或字符型数组,字符型变量或字符型数组,用来指定一个内部文件。用来指定一个内部文件。3. 外部文件的设备号:外部文件的设备号:数值型的常量或变量,用来数值型的常量或变量,用来指定一个外部文件。一

9、个设备号只能与一个文件指定一个外部文件。一个设备号只能与一个文件相连接,而一个文件一次也只能与一个设备号连相连接,而一个文件一次也只能与一个设备号连接。接。12.2 文件操作语句n本节中介绍文件的基本操作包括:本节中介绍文件的基本操作包括:文件的打开文件的打开关闭关闭文件的输入输出语句。文件的输入输出语句。 12.2.1 文件的打开文件的打开打开文件的语句格式为:打开文件的语句格式为: OPEN(OLIST)1.UNIT=UT:指定一个设备号。:指定一个设备号。UT是整型常数是整型常数或表达式,代表一个设备号。或表达式,代表一个设备号。该说明符是该说明符是必不可少必不可少的。的。当该说明符是当

10、该说明符是OLIST中的第一个说明符时,中的第一个说明符时,“UNIT=”可以省略。可以省略。2.FILE=FL:指定要打开的文件名。:指定要打开的文件名。FL是一个是一个字符型常量,或者是字符型表达式,代表一字符型常量,或者是字符型表达式,代表一个文件名。个文件名。OPEN语句的作用语句的作用就是将文件就是将文件FL连接到指连接到指定的设备号上。定的设备号上。 12.2.1 文件的打开文件的打开3.STATUS=SS:用来说明文件的状态。:用来说明文件的状态。SS是一个字符串,它可以是如下是一个字符串,它可以是如下5种值之一:种值之一:“NEW”,“OLD”,“REPLACE”,“SCRAT

11、CH”,“UNKNOWN”STATUS的缺省值是的缺省值是“UNKNOWN” 12.2.1 文件的打开文件的打开4.ACCESS=AS,指定文件是顺序文件还是直,指定文件是顺序文件还是直接文件。接文件。当当AS的值为的值为“SEQUENTIAL”时表示时表示指定的文件是顺序文件指定的文件是顺序文件当为当为“DIRECT”时表示是直接文件。时表示是直接文件。该说明符该说明符缺省时,表示该文件为顺序文缺省时,表示该文件为顺序文件。件。 12.2.1 文件的打开文件的打开5.FORM=FM,说明文件是有格式文件还是说明文件是有格式文件还是无格式文件。无格式文件。FM的值可为的值可为“FORMATTE

12、D”(有格式文件有格式文件)或者或者“UNFORMATTED”(无格式文件无格式文件)。对于对于顺序文件顺序文件,FORM的缺省值是有的缺省值是有格式的格式的(“FORMATTED”)对于对于直接文件直接文件,FORM的缺省值是无的缺省值是无格式的格式的(“UNFORMATTED”)。 12.2.1 文件的打开文件的打开6.RECL=RL,RL是值为正整数的整型表达式,用是值为正整数的整型表达式,用来指定文件中记录的长度。来指定文件中记录的长度。当文件是顺序文件时,不必列出该说明符,当文件是顺序文件时,不必列出该说明符,当文件是直接文件时,必须指定记录长度。当文件是直接文件时,必须指定记录长度

13、。7.ACTION=AN,用来说明文件的属性。,用来说明文件的属性。AN是一字是一字符串,可取为:符串,可取为: “READ”,“WRITE”,“READWRITE” “READ”表示该文件是只能读而不能写,表示该文件是只能读而不能写,“WRITE”表示该文件只能写不能读,表示该文件只能写不能读,“READWRITE”表示该文件既可读也可写。表示该文件既可读也可写。缺省值为缺省值为“READWRITE”。 12.2.1 文件的打开文件的打开8.BLANK=BK,指明空格的处理方式。其中,指明空格的处理方式。其中BK为字为字符串,其值可为符串,其值可为 “NULL”,“ZERO”。当取为当取为“

14、NULL”时表示数据中的空格全部忽略时表示数据中的空格全部忽略不计,不计,当取为当取为“ZERO”时表示空格作零处理。时表示空格作零处理。缺省值缺省值为为“NULL”。9.IOSTAT=IS,IS为一整型变量,若为一整型变量,若OPEN语句执行语句执行时无错误发生,则时无错误发生,则IS的值为零,否则它被赋一正的值为零,否则它被赋一正整数值。整数值。10.ERR=ER,指示打开文件时的错误处理。,指示打开文件时的错误处理。ER是一是一个语句标号,当执行个语句标号,当执行OPEN语句发生错误时,转语句发生错误时,转到标号为到标号为ER的语句处。因为语句标号的使用会的语句处。因为语句标号的使用会影

15、响模块化程序设计,所以这个说明符不主张使影响模块化程序设计,所以这个说明符不主张使用。用。例例 题:题:nOPEN(10,FILE=SEQNTL_FLNAME,STATUS=OLD,ACTION=READ)OPEN(20,FILE=DIRECT_FLNAME,STATUS=NEW,ACCESS= DIRECT) 12.2.2 文件的关闭文件的关闭nCLOSE语句的格式为:语句的格式为:CLOSE(CLIST)nCLIST主要包含下列说明符:主要包含下列说明符:UNIT=UT,与打开文件时的说明符相同。,与打开文件时的说明符相同。STATUS=SS,与打开文件时的说明符相同。,与打开文件时的说明

16、符相同。IOSTAT=IS,指出文件关闭后是否保留。,指出文件关闭后是否保留。IS是一个字符串,其取值可以是是一个字符串,其取值可以是“KEEP”或或“DELETE”。“KEEP”表示文件关闭后仍表示文件关闭后仍然保留,然保留,“DELETE”表示文件关闭后删除表示文件关闭后删除该文件。该文件。 说明说明n当打开文件时使用了当打开文件时使用了STATUS=SCRATCH 说明符,说明符,则关闭文件时就不能使用则关闭文件时就不能使用“KEEP”状态。当打开文件时没有使用状态。当打开文件时没有使用STATUS=SCRATCH,关闭时,关闭时IOSTAT的缺省值为的缺省值为“KEEP” 12.2.3

17、 文件的查询文件的查询 INQUIREINQUIRE语句又称为查询语句。按查询方式可分为三语句又称为查询语句。按查询方式可分为三种:按设备号查询、按文件名查询和按长度查询。种:按设备号查询、按文件名查询和按长度查询。1.1.按设备号或文件名查询按设备号或文件名查询按文件号或文件名查询的一般格式为:按文件号或文件名查询的一般格式为:nINQUIRE(INQUIRE(查询说明表查询说明表) ) 2.2.按长度查询按长度查询在建立直接文件时,通常需要事先知道文件中记录的在建立直接文件时,通常需要事先知道文件中记录的长度,程序中可以通过查询语句来查询输出表的长度,程序中可以通过查询语句来查询输出表的长

18、度,把查询结果作为记录长度。长度查询的一长度,把查询结果作为记录长度。长度查询的一般形式是:般形式是:nINQUIRE (IOLENGTH=INT) INQUIRE (IOLENGTH=INT) 输出表输出表其中其中:INT:INT为整型变量。查询语句的功能是查询输出表为整型变量。查询语句的功能是查询输出表的长度,一般用在无格式直接存取文件之前。的长度,一般用在无格式直接存取文件之前。 12.2.4 文件的输入输出语句文件的输入输出语句 nFORTRAN的输入输出语句的格式为:READ 格式说明,输入表PRINT 格式说明,输入表READ(控制信息表)输入表WRITE(控制信息表)输入表控制信

19、息表组成:控制信息表组成:1.设备说明符设备说明符UNIT=UT,指定输入或输出的,指定输入或输出的设备号,其中设备号,其中UT为字符变量、整型常数为字符变量、整型常数或表达式、星号或表达式、星号*。若设备号为字符变量,表示对内部文件读写;若设备号为字符变量,表示对内部文件读写;若设备号为整型常数或表达式,表示对外部若设备号为整型常数或表达式,表示对外部文件读写;文件读写;若设备号为若设备号为*,表示在系统默认的设备上输,表示在系统默认的设备上输入或输出。入或输出。当该说明符为控制信息表的第一项时,当该说明符为控制信息表的第一项时,“UNIT=”可以省略。可以省略。控制信息表组成:控制信息表组

20、成:2.格式说明符格式说明符FMT=FT,指定输入或输出的格,指定输入或输出的格式。式。FT为一字符型表达式或者为一星号为一字符型表达式或者为一星号(*)当它仅是一个星号时,表示按表控格式输入当它仅是一个星号时,表示按表控格式输入(输出输出)。当它为一字符表达式时,它的值是表示格式当它为一字符表达式时,它的值是表示格式说明的字符串。说明的字符串。当该说明符为控制信息表的第二项时,当该说明符为控制信息表的第二项时,“FMT=”可以省略。可以省略。当对无格式文件进行操作时,该项说明应缺当对无格式文件进行操作时,该项说明应缺省。省。控制信息表组成:控制信息表组成:3.记录说明符记录说明符REC=RC,RC是整型表达是整型表达式,用来指定被读写的记录号,该式,用来指定被读写的记录号,该说明仅适用直接文件。说明仅适用直接文件。4.状态说明符状态说明符IOSTAT=IS,IS为整型变为整型变量,用来表示执行输入输出语句时量,用来表示执行输入输出语句时的状态:当输入输出发生错误时,的状态:当输入输出发生错误时,IS为正;当遇到文件结束符时为正;当遇到文件结束符时IS为为负;当输入输出操作无误时,负;当输入输出操作无误时,IS为为零。零。 12.3 文件的操作文件的操作 12.3.1 12.3.1 有格式顺序存取文件的操作有格式顺

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论