Fortran文件
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
ADVANCE=Advance : 说明是否为推进型的有格式顺 序存取方式。 为字符型表达式,有两种选项: 序存取方式。Advance为字符型表达式,有两种选项: YES” 推进型, 在每次读/ 写操作后, “ YES” : 推进型 , 在每次读 / 写操作后 , 将指针定位 于记录尾,缺省为“YES” 于记录尾,缺省为“YES”。 NO” 推进型, 允许读/ 写一个记录的一部分, “ NO” : 非 推进型 , 允许读 / 写一个记录的一部分 , 然后将指针定位于此次读/写的最后一个字符之后。 然后将指针定位于此次读/写的最后一个字符之后。
(3)一个WRITE语句总是开始一个新的记录,但 一个WRITE语句总是开始一个新的记录, WRITE语句总是开始一个新的记录 是形成新的记录还与FORMAT FORMAT中格式的多次使用及 是形成新的记录还与FORMAT中格式的多次使用及 斜杠“ 描述符有关 例如: 描述符有关。 斜杠“/”描述符有关。例如: REAL value(4) DATA value/1.2, 2.3, 3.4, 4.5/ OPEN(9, FILE="FILE11-16.TXT") WRITE(9, 100) value 100 FORMAT(2F10.3) CLOSE(9) END
从文件FILE11 4.TXT中输入数据 FILE11中输入数据, 例11.4 P217 从文件FILE11-4.TXT中输入数据, 将数据显示在屏幕上。 将数据显示在屏幕上。 CHARACTER*20 string OPEN(8, FILE="FILE11-4.TXT") READ(8, 100)number,value READ(8, 300)string WRITE(*, *) number,value,string 100 FORMAT(I6, F8.3) 300 FORMAT(A10) CLOSE(8) END
用open语句打开一个顺序文件时,文件指针指向 open语句打开一个顺序文件时 语句打开一个顺序文件时, 所打开的文件的第一个记录的开头, 所打开的文件的第一个记录的开头,以便为输入输出 做好准备。 做好准备。
二、CLOSE 语句
作用: 作用:解除设备号与文件的联系
格式: 格式:CLOSE ( unit)
对顺序文件进行输入输出的基本规则: 对顺序文件进行输入输出的基本规则: READ语句中各输入项在类型和采用的格式 (1)READ语句中各输入项在类型和采用的格式 说明上必须与输出语句的输出项一一对应。 说明上必须与输出语句的输出项一一对应。 如果READ READ语句中的输入项少于记录中的数 (2)如果READ语句中的输入项少于记录中的数 据项,则记录中多余的数据项被忽略, 据项,则记录中多余的数据项被忽略,下一个 READ语句从一个新的记录开始读入 语句从一个新的记录开始读入。 READ语句从一个新的记录开始读入。 如果READ语句中的输入项多于记录中的数 如果READ语句中的输入项多于记录中的数 READ 据项,则以空格填补记录( 据项,则以空格填补记录(若该输入项为数值 空格转换为相对应的数值0),直到所有 型,空格转换为相对应的数值0),直到所有 的输入项都得到数据为止。 的输入项都得到数据为止。
例如,执行以下程序段: 例如,执行以下程序段: OPEN(2,FILE="example.txt",ACCESS="SEQUENTIAL") WRITE(2,'(A)',ADVANCE="no") "This is " WRITE(2,'(A)') " an example." 文件中: 文件中: This is an example.
END=语句标号:文件结束说明,当读到文件结束标 语句标号:文件结束说明, 志时,转向执行用户指定的这个标号其后的语句。 志时,转向执行用户指定的这个标号其后的语句。 输入/出项表中各项可以是变量名、 输入 出项表中各项可以是变量名、数组元素 出项表中各项可以是变量名 数组名。各项之间用“ 间隔。 名、数组名。各项之间用“,”间隔。 在READ语句中如果没有输入项,则每执行 语句中如果没有输入项, 语句中如果没有输入项 一次READ语句就跳过一个记录。 语句就跳过一个记录。 一次 语句就跳过一个记录 语句中也可以没有输出项, 在WRITE语句中也可以没有输出项,这时, 语句中也可以没有输出项 这时, 执行该语句将产生一个空记录。 执行该语句将产生一个空记录。
的数据流由一个个的字符组成,每个字符占一个字节。 的数据流由一个个的字符组成,每个字符占一个字节。 无格式文件是由物理数据块所构成的记录序列, 无格式文件是由物理数据块所构成的记录序列,由无格式记录 组成,其记录是数值序列。无格式的直接文件仅包含数据本身。 组成,其记录是数值序列。无格式的直接文件仅包含数据本身。 二进制文件是Microsoft的一种扩充模式,数据按其在内存中的 的一种扩充模式, 二进制文件是 的一种扩充模式 存储形式存储在文件中, 存储形式存储在文件中,其数据流由二进制代码形式的一个个 字节组成,结构最紧凑,适合于保存大容量的数据。 字节组成,结构最紧凑,适合于保存大容量的数据。
11.3
文件的读写
一、有格式顺序存取文件
READ ( [UNIT=] unit ,[FMT=] fmt [,ADVANCE=advance] [ , ERR=语句标号 [ ,IOSTAT=iostat] [ , END=语句标号 ) 语句标号] 语句标号] 语句标号 语句标号 输入项表 WRITE( [UNIT=]unit, [FMT=] fmt ] [,ADVANCE=advance] [ , ERR=err] [ , IOSTAT=iostat] ) 输出项表 [FMT=] fmt :格式说明,fmt可以是“*”号、FORMAT语句标号、 格式说明, 可以是“ FORMAT语句标号 语句标号、 格式说明字符串。 格式说明字符串。
RECL=recl:记录长度说明,recl是一个正整数,用 记录长度说明, 是一个正整数, 于指定顺序存取文件的最大记录长度和直接存取文 件的每条记录的长度。记录的长度单位为字节。 件的每条记录的长度。记录的长度单位为字节。 对于直接存取文件必须指定记录长度。 对于直接存取文件必须指定记录长度。 ERR=语句标号:出错处理说明。当OPEN语句操作出 =语句标号:出错处理说明。 OPEN语句操作出 错时,转向执行该标号后面的语句。 错时,转向执行该标号后面的语句。如果省略此说 明项,则没有这一功能。若同时不存在“IOSTAT=” 明项,则没有这一功能。若同时不存在“IOSTAT= 遇到OPEN语句执行出错,系统将给出出错信息, OPEN语句执行出错 项,遇到OPEN语句执行出错,系统将给出出错信息, 终止程序运行。 终止程序运行。
省略此说明项时,代表顺序存取方式。 省略此说明项时,代表顺序存取方式。
FORM=form:记录格式说明,form是一个字符串表达 :记录格式说明, 式,此表达式的值可以是以下三种之一: 此表达式的值可以是以下三种之一: FORMATTED:记录按有格式的形式存放。 :记录按有格式的形式存放。 UNFORMATTED:记录按无格式的形式存放。 :记录按无格式的形式存放。 BINARY:记录按二进制的形式存放。 :记录按二进制的形式存放。 对于顺序存取方式, 对于顺序存取方式,此说明项的缺省值为 “FORMATTED”。 。 对于直接存取方式, 对于直接存取方式,此说明项的缺省值为 “UNFORMATTED”。 。 存取方式、格式都省略时,为顺序存取的有格式文件。 存取方式、格式都省略时,为顺序存取的有格式文件。
第十一章 文件 第十一
文件的概念 文件的打开与关闭 文件的读写 其他文件操作
11.1
文件的概念
文件:存储在外部介质上数据的集合,由若干个记录构成。 文件:存储在外部介质上数据的集合,由若干个记录构成。
一、 记录
记录:一组相关数据项(又称字段)的集合, 记录:一组相关数据项(又称字段)的集合,是构成文件的基 本单位。对文件的存取以记录为单位,输入/输出时 输出时, 本单位。对文件的存取以记录为单位,输入 输出时,一次输 输出一个记录。 入/输出一个记录。 输出一个记录
文件的结构(数据的存放格式) 三、文件的结构(数据的存放格式)
数据在文件中可以用三种结构形式存放, 有格式文件、 数据在文件中可以用三种结构形式存放,即有格式文件、无格 式文件、二进制文件。 式文件、二进制文件。
有格式文件中的记录为字符形式(或称 中的记录为字符形式(或称ASCII码形式),文件 码形式), 码形式),文件
IOSTAT=iostat:出错状态说明时,将由系统自动给 出错状态说明时 iostat赋一个整型值。当输入输出操作没有发生错 赋一个整型值。 误时,其值为0 若已检索到文件末尾, 误时,其值为0;若已检索到文件末尾,则为一个 负数;若发生错误,则为错误信息代码。 负数;若发生错误,则为错误信息代码。
百度文库
11.2
文件的打开与关闭
OPEN语句 一、OPEN语句
作用:把一个设备号和一个文件或物理设备相联系, 作用:把一个设备号和一个文件或物理设备相联系,由该设备 号来代表相应的文件。 号来代表相应的文件。
OPEN语句格式: 语句格式: 语句格式
OPEN ([UNIT=] unit , FILE=“文件名” , STATUS=status , 文件名” 文件名 [ ACCESS=access] [ , FORM=form] [ , RECL=recl ] [ , ERR=语句标号] [ , IOSTAT=iostat ] [ , ACTION=action]) 的整数或表达式, unit:设备号,>=0的整数或表达式 [UNIT=] unit:设备号,>=0的整数或表达式,作为第一项时 UNIT=”可以省略 “UNIT= 可以省略 OPEN语句把第一项指定的设备号与第二项的文件名连接起来 OPEN语句把第一项指定的设备号与第二项的文件名连接起来
例11.3 P216 按顺序存取方式在格式文件中写入 三种不同类型的数据。 三种不同类型的数据。 CHARACTER*20 string NUMBER=123 VALUE=987.65 STRING="AN EXAMPLE" OPEN(8,FILE=“FILE11-4.TXT”) !有格式顺序存取 WRITE(8,100)number WRITE(8,200)value WRITE(8,300)string 100 FORMAT(I6) 200 FORMAT(F8.3) 300 FORMAT(A10) CLOSE(8) END
是一个字符串表达式, status:文件状态说明, STATUS=status:文件状态说明,status是一个字符串表达式, 其值由用户给出: 其值由用户给出: OLD:文件已经存在,且不用新文件取代它。 :文件已经存在,且不用新文件取代它。 NEW:要新建立的文件,如文件已经存在,用新文件取代之。 :要新建立的文件,如文件已经存在,用新文件取代之。 ACCESS=access:存取方式说明,access是一个字符串表达式, 存取方式说明, 是一个字符串表达式, 此表达式的值可以是以下三种之一: 此表达式的值可以是以下三种之一: DIRECT:直接存取方式。 :直接存取方式。 SEQUENTIAL:顺序存取方式。 :顺序存取方式。 APPEND:在所打开文件的最后一个记录后添加新的记录。 :在所打开文件的最后一个记录后添加新的记录。
二、文件的存取方式
顺序存取和直接存取 顺序存取: 顺序存取:将文件的记录按建立的时间先后顺序依次存放在 存储介质中,各记录长度可以不同, 存储介质中,各记录长度可以不同,所以对文件的存取操作 必须从头至尾顺序进行。 必须从头至尾顺序进行。
直接存取(随机存取):将文件记录由程序指定的某一位置直 直接存取(随机存取):将文件记录由程序指定的某一位置直 ): 接存取。每个记录长度相同, 接存取。每个记录长度相同,可以对任意一个指定的记录进行 读/写。 写