1. 打开文件(open)

open(unit=number,file='filename',form='...',status='...',access='...',recl=length,err=label,iostat=iostat,blank='...',position='...',action=action,pad='...',delim='...')

unit=number

number必须是一个正整数,它可以使用变量或是常量来赋值。number值最好避开1,2,5,6,因为2,6是默认的输出位置,也就是屏幕。1、5则是默认的输入位置,也就是键盘。

file='filename'

这个字段用来指定所要打开的文件名称,文件名要符合操作系统规定,像是Windows下文件名不区分大小写,UNIX中则会区分大小写,还有不管使用哪一个操作系统,最好都不要使用中文文件名。

form='formatted' or 'unformatted'

form字段只有两个值可以设置:'formatted'或'unformatted'。
form='formatted'表示文件使用“文本文件”格式来保存;
form='unformatted'表示文件使用“二进制文件”格式来保存。
这一栏不给定时,默认值为form='formatted'。

status='new' or 'old' or 'replace' or 'scratch' or 'unknown'

status='new' 表示这个文件原本不存在,是第一次打开;
status='old' 表示这个文件原本就已经存在;
status='replace' 文件若已存在,会重新创建一次,原本的内容会消失。文件若不存在,会创建新文件;
status='scratch' 表示要打开一个暂存盘,这个时候可以不需要指定文件名称,也就是file这一栏可以忽略,因为程序本身会自动取一个文件名,至于文件名是什么也不重要,因为暂存盘会在程序结束后自动删除;
status='unknown' 由各编译器自定义,通常会同replace的效果。
这一栏不给定时,默认值为unknown。

access='sequential' or 'direct'

这个字段用来设置读写文件的方法。
access='sequential' 读写文件的操作会以“顺序”的方法来做读写,这就是“顺序读写文件”;
access='direct' 读写文件的操作可以任意指定位置,这就是“直接读取文件”。
不赋值时,默认值为sequential。

recl=lengh

在顺序读取文件中,recl字段值用来设置一次可以读写多大容量的数据。
在打开“直接读取文件”时,recl=length的length值是用来设置文件中每一个模块单元的区分长度。
length的单位在文本格式下为1字符,也就是1byte。在二进制格式下则由编译器自行决定,一般可能为1byte(G77)或4bytes(Visual Fortran)。

err=label

这个字段用来设置当文件打开发生错误时,程序会跳跃到label所指的代码行处来继续执行程序。

iostat=var

这个字段会设置一个整数值给后面的整型变量,这是用来说明文件的打开状态,数值会有下面三种情况:
var>0 表示读取操作发生错误;
var=0 表示读取操作正常;
var<0 表示文件终了。

blank='null' or 'zero'

这用来设置文件输入数字时,当所设置的格式字段中有空格存在时所代表的意义。blank='null'时,空格代表没有东西。blank='zero'时,空格部分会自动以0代入。

Fortran90添加的功能:

position='asis' or 'rewind' or 'append'

position='asis' 表示文件打开时的读取位置,不特别指定位置,通常就是在文件开头,这是默认值;
position='rewind' 表示文件打开时的读取位置移到文件的开头;
position='append' 表示文件打开时的读取位置移到文件的结尾。

action='read' or 'write' or 'readwrite'

设置所打开文件的读写权限:
action='readwrite' 表示所打开文件可以用来读取及写入,这是默认值;
action='read' 表示所打开的文件只能用来读取数据;
action='write' 表示所打开的文件只能用来写入数据。

pad='yes' or 'no'

pad='yes' 在格式化输入时,最前面的不足字段会自动以空格填满,默认值是pad='yes';
pad='no' 在格式化输入时,不足的字段不会自动以空格填满。

delim='apostrophe' or 'quote' or 'none'

delim='none' 纯粹输出字符串内容;
delim='quote' 输出字符串会在前后加上双引号;
delim='apostrophe' 输出字符串会在前后加上单引号。

2. 读写文件(write/read)

write/read(unit=number,fmt=format,nml=namelist,rec=record,iostat=stat,err=errlabel,end=endlabel,advance=advance,size=size)

unit=number

这个字段用来指定read/write所使用的输入/输出的位置。

fmt=format

指定输入输出格式使用。

nml=namelist

指定读写某个namelist的内容。

rec=record

在直接读取文件中,设置所要读写的文件模块位置。

iostat=var

这个字段会设置一个整数值给后面的整型变量,用来说明文件的读写状态:
var>0 表示读取操作发生错误;
var=0 表示读取操作正常;
var<0 表示文件终了。

err=errlabel

指定在读写过程中发生错误时,会转移到某个行代码来继续执行程序。

end=endlabel

指定在读写到文件末尾时,要转移到某个行代码来继续执行程序。

Fortran90添加的功能:

advance='yes' or 'no'

设置在文本格式下的顺序文件中,每一次的read/write命令完成之后,读写位置会不会自动向下移动一行。
advance='yes' 是默认的状态,每读写一次会自动下移一行;
advance='no' 会暂停自动换行的操作,
使用这个字段时,一定要设置输入输出格式,在平面输出时可以使用这个设置来控制write命令是否会自动换行。

size=count

当advance='no'时,才可以使用这个字段,它会把这一次输入输出的字符数目设置给后面的整型变量。

3. 查询文件状态(inquire)

inquire(unit=number,file=filename,iostat=stat,err=label,exist=exist,opened=opened,number=number,named=named,access=access,sequential=sequential,direct=direct,form=form,formatted=formatted,unformatted=unformatted,recl=recl)

unit=number

赋值所要查询的文件代号。

file=filename

赋值所要查询的文件名称。

iostat=stat 

查询文件读取情况:
var>0 表示读取操作发生错误;
var=0 表示读取操作正常;
var<0 表示文件终了。

err=errlabel

指定inquire发生错误时,会转移到某个行代码来继续执行程序。

exist=exist

检查文件是否存在,会返回一个布尔变量给后面的逻辑变量,返回真值表示文件存在,返回假值表示文件不存在。

opened=opened

检查文件是否已经使用open命令打开,会返回一个布尔变量给后面的逻辑变量,返回真值表示文件已经打开,返回假值表示文件尚未打开。

number=number

由文件名来查询这个文件所给定的代码。

named=named

查询文件是否取了名字,也就是检验文件是否为临时保存盘,返回值为逻辑数。

access=access

检查文件的读取格式,会返回一个字符串,字符串可以是:
'sequential' 代表文件使用顺序读写格式;
'direct' 代表文件使用直接读取格式;
‘undefined’ 代表没有定义。

sequential=sequential

查看文件时候采用顺序格式,会返回一个字符串:
'yes' 代表文件是顺序读取文件;
'no' 代表文件不是顺序读取文件;
'unknown' 代表不知道。

direct=direct

查看文件时候采用直接格式,会返回一个字符串:
'yes' 代表文件是直接读取文件;
'no' 代表文件不是直接读取文件;
'unknown' 代表不知道。

form=form

查看文件的保存方法,会返回一个字符串:
'formatted' 打开的是文本文件;
'unformatted' 打开的是二进制文件;
'undefined' 没有定义。

formatted=fmt

查看文件是否为文本文件,返回一个字符串:
'yes' 代表本文件是文本文件;
'no' 代表本文件不是文本文件;
'unknown' 无法判定。

unformatted=fmt

查看文件是否为二进制文件,返回一个字符串:
'yes' 代表本文件是二进制文件;
'no' 代表本文件不是二进制文件;
'unknown' 无法判定。

recl=length

返回open文件时recl栏的设定值。

nextrec=nr

返回下一次文件读写的位置。

blank=blank

返回值是字符串,用来查看open文件时的blank参数所给定的字符串值。

Fortran90添加的功能:

position=position

返回打开文件时position字段给定的字符串。

action=action

返回打开文件时action字段给定的字符串。

read=read

返回字符串,检查文件是否为只读文件:
'yes' 代表本文件是只读的;
'no' 代表本文件不是只读的;
'unknown' 无法判定。

write=write

返回字符串,检查文件是否可以写入:
'yes' 代表本文件是可以写入的;
'no' 代表本文件不是可以写入的;
'unknown' 无法判定。

readwrite=readwrite

返回字符串,检查文件是否可以同时读写:
'yes' 代表本文件是可以同时读写;
'no' 代表本文件不是可以同时读写;
'unknown' 无法判定。

delim=delim

返回打开文件时delim字段给定的字符串。

pad=pad

返回打开文件时pad字段给定的字符串。

4. 其它文件运行命令

backspace(unit=number,err=errlabel,iostat=iostat)

把文件的读写位置返回一步,其它参数同上。

endfile(unit=number,err=errlabel,iostat=iostat)

把目前文件的读写位置变成文件的结尾,其它同上。

rewind(unit=number,err=errlabel,iostat=iostat)

把文件的读写位置倒回文件开头,其它同上。

close(unit=number,status=string,err=errlabel,iostat=iostat)

把文件关闭,不再进行读写操作。
status='keep' 在文件关闭后,保留这个文件,这是默认的状态;
status='delete' 在文件关闭后,消除这个文件。


参考资料: 彭国伦 《Fortran95程序设计》 中国电力出版社

fortran95 文件读写等操作的字段参数总结相关推荐

  1. Android U盘文件读写复制操作

    Android U盘文件读写复制操作 应用开发起因 一.U盘的拔插监听及读取U盘设备 二.读取文件列表 1.U盘文件列表读取 2.Storage文件列表读取 三.通过文件列表进入文件,进行文本文件的读 ...

  2. Matlab的各种数据读取、文件读写等操作汇总

    Matlab的各种数据读取.文件读写等操作汇总 MATLAB提供了多种方式从磁盘读入文件或将数据输入到工作空间,即读取数据,又叫导入数据:将工作空间的变量存储到磁盘文件中称为存写数据,又叫导出数据.至 ...

  3. python怎么保存文件代码_Python文件读写保存操作的实现代码

    本篇文章给大家带来的内容是关于Python文件读写保存操作的实现代码 ,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 记录下第一次使用Python读写文件的过程,虽然很简单,第一次实 ...

  4. python读取写入文件_Python文件读写保存操作

    记录下第一次使用Python读写文件的过程,虽然很简单,第一次实现其实也有些注意的事项. 单个文件的读操作: 我们先假设一个需求如下: 读取一个test.txt文件 删除指定字符之前的文本 需求明白之 ...

  5. python存文件代码_Python文件读写保存操作的示例代码

    记录下第一次使用Python读写文件的过程,虽然很简单,第一次实现其实也有些注意的事项. 单个文件的读操作: 我们先假设一个需求如下: 读取一个test.txt文件 删除指定字符之前的文本 需求明白之 ...

  6. 文件读写io操作范例

    系统io读写,copy int main(int argc, char **argv) {  if(argc != 3) {   printf("Usage: %s <src> ...

  7. java sitemap_JAVA 针对 sitemap.xml 文件读写修改操作

    UDP 是User Datagram Protocol的简称, 中文名是用户数据报协议,是OSI(Open System Interconnection,开放式系统互联) 参考模型中一种无连接的传输层 ...

  8. c++中的文件读写的操作

    写文件 ofstream open指定打开方式 isopen判断是否打开成功 ifs<<"数据" ofs.close() 读文件 ifstream ifs 指定打开方式 ...

  9. VBA打开TXT类文件读写相关操作代码

    Open 文件名 for 打开方式 as 文件编号 打开方式: Input :只能读,不能写 Append:允许读也允许写,如果存在文件就追加记录,如果没有就新建文件 Output:可以读,也可以写. ...

  10. python 文件读写with open模式r,r+ w,w+ a,a+区别详解

    python 文件读写with open模式r,r+ w,w+ a,a+区别详解 python中的 with open主要要来进行文件读写的操作 在 Python 中使用文件的关键函数是 open() ...

最新文章

  1. 用 C 语言开发一门编程语言 — S-表达式
  2. js判断中文字符长度
  3. Chrome 开发者工具里的 CSS grid editor
  4. 作家百态之一:作家、批评家与酒
  5. Digest authentication
  6. android 隐藏系统键盘
  7. iOS开发NSDecimalNumber的基本使用,加、减、乘、除、指数、比较
  8. Opencv之获取边缘和画轮廓
  9. 基于京东家电商品知识图谱的自动问答系统(二) -- IDEA搭建开发环境
  10. MySQL(一)-MySQL安装、数据库的创建和操作、CRUD、MySQL常用函数、MD5加密
  11. 华为服务器进入bios怎么重装系统,华为服务器进bios设置
  12. 启善企业微信自动加好友助手教程
  13. oracle数据库与实例的区别与联系
  14. 电脑网络IP固定地址自动改变!问题被我解决啦
  15. 东南大学计算机考研学硕,东南大学学硕考研经验
  16. docker 搭建在线office--onlyoffice (二)
  17. 将模型数据与QComboBox关联: Combo Widget Mapper Example
  18. EBGP/IBGP/IGP有何区别?
  19. 2020届华为秋招数字芯片面试经验
  20. 龙芯ls1b开发板 基础操作

热门文章

  1. python的文件夹里面有什么_Python的文件及文件夹操作
  2. 计算机毕业设计APP项目技术开发文档
  3. SQL Service安装教程
  4. Flutter封装加载状态视图,加载中、加载成功、加载失败、加载无数据
  5. PRML第三章之回归的线性模型
  6. 成功从小公司跳槽!java并发编程实践pdf完整百度云
  7. 2022年4月中国数据库排行榜:华为GaussDB 挺进前四,榜单前八得分扶摇直上
  8. mac 卸载mysql_Mac 电脑卸载mysql数据库
  9. 【numpy】查询手册
  10. aix java 版本_AIX系统安装JDK