fortran95的使用方法
● 程序对外部文件的访问需要通过与逻辑部件建立联结,因此就需要相应的能够对外部文件进行联结,定位与查询的语句,而对于内部文件则不需要这些语句功能。同时这种联结就使得外部文件具有定位的属性。
● 对于外部文件来说,它的访问方式,合法形式,合法操作,以及合法纪录长度等都不是由FORTRAN语言标准来规定,而是由操作系统对于文件的约定以及用户的特定选择来决定的;而内部文件的内容都是作为默认字符型变量的数据值的形式而储存的,这些字符型数据值都是程序的通常的赋值过程所产生的,或者是输出语句针对变量而给出的。
如果内部文件所表示的变量是一个标量,那么该文件就只有一个纪录;如果该变量是一个数组,那么该数组的每一个元素组成该文件的一个纪录,文件里面纪录的顺序就是数组的相应的元素顺序,每个纪录的长度就是相应元素的长度。
16.1.3 文件的访问
由于文件的纪录是一种串行的序列结构,要实现对文件的纪录的访问,可以有如下两种方式:
● 序列访问;
● 直接访问。
所谓序列访问,就是顺着文件的纪录序列来访问特定的纪录,即如果要访问文件的第n个纪录,则需要顺次经过文件的第1,…,一直到第n-1个纪录,才访问到第n个纪录;而直接访问则不需要经过前面的n-1个纪录,通过指定纪录号即可直接访问第n个纪录,因此直接访问无论是读还是写,都可以按照任意的顺序进行。
这两种不同的访问方法很大程度上是由存储文件的媒质以及系统的约定等外部因素决定的,例如存储在磁带上面的可能就只允许采用序列访问的方式进行访问。
不过当一个文件被联结到了一个特定的部件之后,或者是预联结的文件被生成之后,它的访问方式就已经被决定了。
这两种不同的访问方式是由对文件的联结方式决定的,而不是属于文件自身的属性。一个文件可以只能通过序列访问方式来访问,也可以只能通过直接访问方式来访问,也可以分别通过这两种方式来访问,但不能同时用这两种方式来访问,也就是说当文件通过某个联结而被程序按照序列方式来访问,那么需要使用CLOSE语句来关闭该联结之后,再使用OPEN语句重新建立新的联结,才能换为按照直接访问的方式来访问。
能够直接访问读的纪录只限于已经写下来的纪录。
能够直接访问写的文件限于建立了直接访问联结的文件。
1. 序列访问
一个外部文件建立了序列访问的联结之后,它就具有如下的属性:
● 如果针对该文件的直接访问是非法的,那么组成该文件的纪录的顺序就是写入该文件的纪录顺序;如果同时针对该文件的直接访问也是合法的,那么该文件的纪录的顺序由直接访问来决定,即序列访问该文件的第一个纪录就是直接访问该文件所指定的纪录号为1的纪录,后面顺次类推。