fortran 第9章.ppt_第1页
fortran 第9章.ppt_第2页
fortran 第9章.ppt_第3页
fortran 第9章.ppt_第4页
fortran 第9章.ppt_第5页
已阅读5页,还剩62页未读 继续免费阅读

下载本文档

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

文档简介

1、第9章文件,9-1文件阅读的概念,文件的功能:长期数据保存;您可以读取或修改文件中保存数据的方式:字符(文本文件)二进制数字代码字符(文本文件):由文本编辑器读取,例如12345,可读二进制数字代码:整数12345,保存格式与内存中的数据保存方式相同,所以不能读取,所以需要特殊的工具和程序。优点:1)读取速度快,无需转换;2)内存节省:长整数1234567890,文本10个字符,二进制4字节;9-1文件阅读的概念;1)顺序读取;2)直接阅读;顺序读取:只能从文件的开头一步一步地往下读取数据。当跳过数据或重新读取数据时,通过“快进”或“倒回”直接读取:当读取和写入文件时,您可以在文件的任何位置进

2、行读取和写入。9-2顺序文件操作,顺序文件:读写时,不能随意在文件的某个位置读写数据,只能从头开始,一个一个往下进行。当改变文件位置时,你只能一个一个退格,或者直接回到文件的开头。,操作顺序文件的基本原则:用read语句读取数据时,为了正确输入,read语句中的每个输入项必须在类型和格式上与文件中的数据项一一对应。每次执行read语句时,总是从新记录中读取。使用read语句读取文件记录时,如果read语句中的输入项少于文件中的数据项,记录中的剩余项将被忽略,下一条read语句将从新记录中读取。如果read语句中的输入项多于记录中的数据项,则下一条记录(不包括单个字符串)将被读取,直到所有输入项

3、都获得数据或满足文件的结尾。写操作总是从一条新记录开始,当前写语句所属的记录总是作为文件的最后一条记录。因此,顺序文件不可能重写前半部分而保留后半部分。顺序文件操作的基本原理:例如,读取字符串、状态=0,读取正常状态0,出现错误,状态0,读取到文件的末尾,例如,如何将学生的座位号和成绩写入文件,例如,如何从文件中写入和读取数据,以及跳过一些不必要的数据来读取数据(成绩),每个汉字占用两个字节,写(*,I2中文:I3英文:I3数学:I3),否,s, 例如:以自由布局格式读取文件中的数据,找出得分高于20的人,找到某个字段,在原始文件中添加小数点,9-3直接访问文件:您可以转到该文件。 读写文件时

4、,首先要指定文件读写的模块,然后进行读写操作。直接读写的文件可以在文件的任何地方读写。例如,有一个保存棒球击球记录和查询球员击球率的文件。每行的末尾都有两个不可见的字符来表示文本的结尾。默认值为未格式化、打开(单位=fileid,文件=文件名,访问=直接,var=0)。读数操作正常;Var0表示文件的结尾。空白=空或零,用于在输入文本时设置空格的含义。空意味着什么,零意味着使用0,9-4-1打开,Fortran 90增加了函数POSITION=ASIS或倒带或追加,并设置文件打开的读写位置=ASIS没有特别指定,通常在文件的开头。默认值为操作=读或写或读/写,设置文件打开的读写权限,填充=是或

5、否,输出时忽略填充=是。格式化输入时,前面的不足字段将自动填充空格,默认值为pad=no。格式化输入时,不足字段不会自动填充空格。Fortran 90添加的函数,delim=APSTOPHERE或quote或none deltm=none纯输出字符串DELIM=DELIM前后带双引号的QUOTE输出字符串DELIM=前后带单引号的APSTOPHER输出字符串没错!“没错!”没错!(delim=撇号)9-4-2使用write和read,WRITE和READ命令的格式类似:write/read(单位=数字,fmt=格式,NML=namlist,rec=record,iostat=stat,err=

6、errlabel,End=endlabel,advance=advance,size=size)单位=数字指定输入和输出的位置fmtf format指定输入和输出格式NMLnamelist指定读取和写入名称列表的内容RECrecord在直接读取中设置要读取和写入的文件模块位置9-4-2使用写,读,IOSTATstat将为变量stat设置一个整数,用于解释读和写的状态。Stat0表示读取操作错误。Stat0表示读取操作正常。Stat0表示到达文件的末尾。ERRerrlabel指定当读写过程中出现错误时,将被传输到errlabel指定的行代码的语句将继续执行。当endlabel读取文件末尾时,将被

7、传输到endlabel指定的行代码的语句将继续执行。Fortran 90增加了“前进=是”和“否”在文本格式的顺序文件中设置的功能。每次读写命令完成后,读写位置会自动下移一行吗?“前进=是”是默认值,每次读写时都会下移一行。前进=否将暂停换行操作。使用此字段时,必须设置输出和输入格式。您可以使用此设置来控制在屏幕上输出时,写命令是否会自动换行。尺寸=计数仅在前进=否时使用.它会将这次输入和输出的字符数设置为整数变量count,9-4-3,并查询文件的状态查询,查询(单位=数字,文件=文件名,iostat=IOs,err=标签,exist=存在,open=打开,number=number,Nam

8、ed=命名,access=访问,sequential=顺序,direct=直接,form=form,formatted=格式化,unformatted=未格式化,rex=rex)open=打开,逻辑变量number=数字是给定的代码NAME=命名,逻辑值检查文件是否命名,即它是否是临时存储磁盘。ACCESS=access检查文件读取的格式并返回一个字符串,其值为SEQUIRED或DIRECT或UNDEFIED SEQUIRED=SEQUIRED。如果您检查文件是否为顺序格式,您将返回一个值为“是”、“否”或“未知”的字符串。Fortran 90增加了函数:position=position,a

9、ction=action,delim=delim,pad=pad查看文件打开时在相应列中设置的字符串值,或UNDEFINED READ=read,WRITE=write,READWRITE=readwrite查看文件的读写属性,返回字符串:YES/NONE/UNknown,9-4-4其他文件运行命令,退格(unit=number,err=errlabel,iostat=IOs)返回文件的读写位置到一条记录(顺序文件是一行)endfile (unit=number,err=errlabel,iostat=iostat)使用此命令将当前的读写位置改为文件的结尾,并且直接文件应该小心地倒带(unit

10、=number,err=errlabel,IOSTAT=iostat)将文件的读写位置返回到文件的开头关闭(unit=number,status=string,err=errlabel,iostat=iostat)并关闭文件。状态=保留或删除可用于保留或删除文件。当直接操作和读取二进制文件时,OPEN命令中rec字段设置的整数n的大小将根据不同的编译器进行不同的定义。例如,在Visual Fortan中,默认情况下它被视为n * 4字节,G77被视为n字节。读写二进制文件的数据可以节省空间,而无需格式化二进制文件。例1,对于编写程序将命中率存储在二进制文件列表中的操作,bin,95二进制文件,

11、Recl的设置应该基于输入数据必须占用的字节大小。例如,实数(8)的浮点数rec需要大于或等于2,并且不需要区分数据之间的符号和空格。例如,从现有文件列表中查找命中率。bin、不能有格式,并且数据类型应该匹配。96内部文件),内部文件:输入和输出数据将作为字符串存储在字符串变量中。示例2:读取字符串(内部文件)中的数据,并将其分配给变量;示例3:程序将输入数据临时存储在字符串中,并判断输入是否正确。如果不正确,请重新输入,这防止了崩溃。根据数据长度更改字符串内容和输出格式。教科书是错误的。97 NAMELIST,NAMELIST是将一组相关变量打包在一起。当输入和输出这组变量时,只要写/读中的

12、NML字段指定要尝试哪个NAMELIST,NAMELIST声明格式:Namelist /nl_name/va1、val2、var3,并且声明必须在语句执行之前。不能为名称列表输出分配输出格式。Fortran 90规定输出应该首先是一个符号,然后是名称列表的名称。然后依次输出变量名、等号和内容,用空格或逗号分隔变量,最后以/符号结束。每个数字内容的输出格式由编译器自己指定。97 Namelist,例如,当用Namelist读取数据时,或以空格为间隔读取NAMELIST的数据时,从和NAMELIST的名称开始,给其中的变量赋值,赋值顺序不正确或不完整,并重复输入后面的值作为最终值。它以/符号结尾。当从文件

温馨提示

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

评论

0/150

提交评论