- 1、本文档共68页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
fortran课件 第8章
第八章 文 件 文件 §8-1 文件读取的概念 文件的功能:长期保存数据;可以被读取或修改 文件中数据保存的方式: 字符(文本文件) 二进制数代码 字符(文本文件): 使用文本编辑器来阅读,例12345,可读 二进制数代码: 整数12345,保存格式和数据在内存中的保存方法相同,无法阅读,要用特殊的工具程序。 好处:1) 读取速度快,无需转换 2)节省内存 长整型1234567890,文本10个字符,二进制4个字节 §8-1 文件读取的概念 读取文件的方式: 1) 顺序读取( sequential) 2) 直接读取(direct) , 顺序读取:只能从文件开头一步步往下读取数据。 略过数据,或重新读取时, 要先“快转”或是“倒带” 直接读取:读写文件时,可以任意到文件的的任何一个位置来读写。 §8-2 顺序文件的操作 顺序文件(sequential):在读写时,不能任意到文件的某个位置读写数据, 只能从头开始一个个记录地向下进行。改变文件位置时,只能逐个记录地后退(backspace),或是直接回到文件的开头(rewind) 对顺序文件的操作的基本原则: 当用read语句读取数据时,为了正确输入,read语句中各项输入项在类型上、采用格式上必须与文件中的数据项按位置一一对应 Open和rewind语句之后总是在文件的开头。每执行一次read语句,总是从一个新开始的记录去读入 当用read语句去读文件记录时,如果read语句中的输入项少于文件中的数据项,则记录中的剩余项就会被忽略,下一个read语句会从新的纪录开始读入,如果read语句中的输入多于纪录中的数据项,则会接着去读下一个记录(不包括单个字符串),直到所有输入项都得到数据,或遇到文件结尾。 对顺序文件的操作的基本原则: 一个WRITE总是开始一个新的记录,当前WRITE语句所属出的记录总是作为文件的最后一个记录。因此一个顺序文件不可能做到重写前半部分,而保留后半部分。 例,读取字符串 例:如何将学生的座号及成绩写入文件中 例:如何写入从文件中读出数据,并略过一些没有必要的数据读取数据(成绩) write(*,(I2号 中文:I3 英文:I3 数学:I3)) no,s 例:读取版面格式较自由的文件中的数据,找出得分高于20的人 …… § 8-3 直接访问文件的操作 直接访问文件:可以到文件的任意位置来读写 实现方法:把文件的空间、内容实现分区成好几个同样大小的小模块,这样的模块按顺序编号。读写文件时,要先赋值文件读写位置在第几个模块,再来进行读写的操作。直接读写的文件可以到文件的任何一个地方来读写。 例:有文件保存了棒球击球记录, 查询球员的击球率 open(unit=fileid, file=filename, access=direct, form=formatted, recl=6, status=old) 直接读取文件form的默认值是“unformatted”(二进制), 与顺序读取文件相反。 recl=6 对于直接读取得文本文件不能省略 Recl=length, 整数lenth为直接存取文件中的每个记录模块的长度。记录长度以字节为单位。直接存取文件中每个记录的长度相等。 在McroSoft操作系统中,文本文件每一行的行尾有两个看不见的符号来表示文本的结束。Unix系统每一行的行尾只有一个结束符号 read(fileid, fmt=(F4.2), rec=player, iostat=error) hit rec=记录号,记录号为正整数,必不可少指定存取的位置,文件的第一个记录的记录号为1。文本文件的Fmt的格式必须规定,而顺序读取不一定需要。 直接访问文件的操作规则: 直接访问文件中每个记录的长度必须相等。如果实际输出的纪录所需长度不等,则应取最大的记录长度作为每个记录的长度。记录长度应由相应的format语句格式规定的输出所占域宽来决定。 如果是一个老文件,在open语句中说明的记录长度必须与实际长度一致。特别要注意尾随的
文档评论(0)