HL2004的个人博客分享 http://blog.sciencenet.cn/u/HL2004

博文

fortran 文件操作知识要点摘要

已有 8368 次阅读 2011-6-5 15:18 |系统分类:科研笔记| 文件操作要点

1、在fortran中,文件和逻辑设备总是成对出现,文件总是同特定的逻辑设备相关联,不管这个文件是内部文件还是外部文件,所谓的外部文件除内存以外的其他外部设,与此对应,保持在一块内存中的数据称为内部文件。预定义的设备描述符中‘*’只允许与键盘和屏幕连接,而不能与其他的外部文件连接,而其他的默认的预定义的设备描述符0,5,6子fortran中虽然也是与默认的外部设备相关联,但fortran并不禁止在程序中将这些设备描述符同其他外部文件相关联。
2、内部文件只能使用read和write语句进行操作,其他常见的文件操作语句(open,close,rewind,backspace,inquire)等语句不能作用于内部文件。在进行内部文件输入输出操作时,如果输入的数据字段宽度小于内部文件中一个记录的长度时,则记录中剩余的空间会用空格进行填充,如果输入数据的字段宽度大于记录长度时,多余的部分将被删除。
3、外部文件中分类
  3.1有格式文件:数据内容的记录是以ASCII码字符的方式进行,每一条就都已ASCII码中的回车符家换行符来结束,使用一般的文本编辑器可以直接看到其中的内容。open语句创建文件时默认的是有格式文件
  3.2无格式文件:数据存放时不指定数据的格式,按照数据在内存中的二进制存放方式来存取数据,但是,一些必要的格式控制仍然会写入文件中,如记录之间的回车符和换行符。
  3.3二进制文件:记录中只有数据,没有格式控制字符
  3.4 二进制文件和无格式文件由于在进行数据保存时直接复制了相应内存中的内容,因而在数据的保存精度上是最高的,而有格式文件在进行格式转换操作时,往往受格式的现在而会对实际的数据做一些阶段处理,从而造成数据精度的丢失。
  3.5顺序存取文件:此中的数据必须一个记录接着一个记录的按顺序被访问。采用open语句的默认设置来打开或创建的文件都是顺序文件。
  3.6 直接存取文件:存在在此中的数据可以按照任意顺序进行读写操作,这种文件中的记录从1开始进行连续编号,所有的记录的长度都是一致的,它通过open语句中的recl参数来描述。
  3.7 只有格式化I/O语句才能读写格式化记录,费用非格式化I/O语句才能读写非格式化记录。在顺序文件中可以用Endfile语句在文件中添加一个文件结束记录。
  3.8在标准的fortran支持的文件中,为了区分不同的记录,会在要保存的记录上添加一些控制字符(不管是有格式的还是无格式的)
4.OPEN语句是fortran语言中最复杂的语句,用于把设备号与文件名连接起来,并且对文件的各项性质进行指定
它的一般形式为:OPEN([UNIT=]unit[,ACCESS=access][,ACTION=action][,BLANK=blanks][,BLOCKSIZE=blocksize][,CARRIAGECONTROL=carriagecontrol][,DELIM=delim][,ERR=err][,FILE=file][,FORM=form][,IOFOCUS=iofocus][,IOSTAT=iostat][,PAD=pad][,POSITION=position][,RECL=recl][,SHARE=share][,STATUS=status])
自选的文件编号从10开始,关于其中各项的解释,请参考:http://blog.sina.com.cn/s/blog_5d2c32550100dhya.html
5.记录的组合:在fortran支持的文件中,对于顺序文件,每条记录依次排列,记录可长可短,读取时,计算机需要知道每条记录的长度(无格式文件的做法)或者正在读取的记录在哪儿结束(有格式文件的做法),对于直接文件,只需要知道该读取第几条记录就可以了,不需要知道每条记录的长度

 



https://blog.sciencenet.cn/blog-579160-451905.html

上一篇:fortran中有关指针的用法总结
下一篇:fortran LINK : warning LNK4098 && error LNK2001
收藏 IP: 202.114.120.*| 热度|

1 田灿荣

发表评论 评论 (0 个评论)

数据加载中...

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-11-22 15:38

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部