⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sec7-2.htm

📁 fortran 教程
💻 HTM
📖 第 1 页 / 共 5 页
字号:
lang=EN-US style='font-size:16.0pt;mso-bidi-font-size:12.0pt;mso-fareast-font-family:
楷体_GB2312'><o:p></o:p></span></b></p>

<p class=MsoBodyTextIndent2 style='line-height:17.0pt;mso-line-height-rule:
exactly'><span lang=EN-US>Fortran</span><span lang=ZH-CN>支持两种文件的访问方式</span><span
lang=EN-US>(</span><span lang=ZH-CN>顺序访问和直接访问</span><span lang=EN-US>)</span><span
lang=ZH-CN>和三种文件的结构</span><span lang=EN-US>(</span><span lang=ZH-CN>有格式、无格式、二进制</span><span
lang=EN-US>)</span><span lang=ZH-CN>。顺序访问或直接访问可以用于这三种结构的文件进行的每一种。因此,共有</span><span
lang=EN-US>6</span><span lang=ZH-CN>种文件类型。</span><span lang=EN-US
style='mso-font-kerning:0pt'><o:p></o:p></span></p>

<p style='margin-left:18.0pt;text-indent:-18.0pt;mso-list:l0 level1 lfo4;
tab-stops:list 18.0pt'><a name="第7_2_2a"></a><![if !supportLists]><span
lang=EN-US style='font-family:宋体;mso-bidi-font-family:宋体;color:red'><span
style='mso-list:Ignore'>a)<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;
</span></span></span><![endif]><span lang=ZH-CN style='font-family:宋体;
color:red'>格式化文件</span><span lang=EN-US style='font-family:宋体;color:red'><o:p></o:p></span></p>

<p class=MsoBodyTextIndent2 style='line-height:17.0pt;mso-line-height-rule:
exactly'><span lang=ZH-CN style='mso-font-kerning:0pt'>在格式化文件中,记录数据内容的记录是以</span><span
lang=EN-US style='mso-font-kerning:0pt'>ASCII</span><span lang=ZH-CN
style='mso-font-kerning:0pt'>字符的方式存在的,每一条记录是以</span><span lang=EN-US
style='mso-font-kerning:0pt'>ASCII</span><span lang=ZH-CN style='mso-font-kerning:
0pt'>码中的回车符</span><span lang=EN-US style='mso-font-kerning:0pt'>CR(0D)</span><span
lang=ZH-CN style='mso-font-kerning:0pt'>加换行符</span><span lang=EN-US
style='mso-font-kerning:0pt'>LF(0A)</span><span lang=ZH-CN style='mso-font-kerning:
0pt'>来结束的,可以用文本编辑软件打开格式文件并直接看懂其内容。即存放在文件中的数字就是平时所看到的数字字符,字符串也就是平时所看到的字符串。而若用文本编辑软件打开无格式文件或二进制文件,看到的则是一些十六进制的字符。因此如果要使文件中的内容可以被人直接看懂,应用格式文件。</span><span
lang=EN-US style='mso-font-kerning:0pt'><o:p></o:p></span></p>

<p class=MsoBodyTextIndent2 style='line-height:17.0pt;mso-line-height-rule:
exactly'><span lang=EN-US style='mso-font-kerning:0pt'>OPEN</span><span
lang=ZH-CN style='mso-font-kerning:0pt'>语句默认的打开文件是格式文件,也可以使用</span><span
lang=EN-US style='mso-font-kerning:0pt'>FORM=</span><span lang=ZH-CN>‘</span><span
lang=EN-US style='mso-font-kerning:0pt'>FORMATTED</span><span lang=ZH-CN
style='mso-font-kerning:0pt'>’设置项的</span><span lang=EN-US style='mso-font-kerning:
0pt'>OPEN</span><span lang=ZH-CN style='mso-font-kerning:0pt'>语句以明确文件是格式化的。</span><span
lang=EN-US style='mso-font-kerning:0pt'><o:p></o:p></span></p>

<p style='margin-left:18.0pt;text-indent:-18.0pt;mso-list:l0 level1 lfo4;
tab-stops:list 18.0pt'><a name="第7_2_2b"></a><![if !supportLists]><span
lang=EN-US style='font-family:宋体;mso-bidi-font-family:宋体;color:red'><span
style='mso-list:Ignore'>b)<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;
</span></span></span><![endif]><span lang=ZH-CN style='font-family:宋体;
color:red'>无格式文件</span><span lang=EN-US style='font-family:宋体;color:red'><o:p></o:p></span></p>

<p class=MsoBodyTextIndent2 style='line-height:17.0pt;mso-line-height-rule:
exactly'><span lang=ZH-CN>无格式文件由一系列物理块组成的记录组成,所存储的记录序列的存放方式与其在内存中的存放非常相似,所以在输入输出时几乎不需作转化。由于去掉了格式控制,与有格式文件相比,在使用数据信息时所做的处理更简洁更迅速;同样也是这个原因使得无格式文件中即使存放着数字,也不能用文本编辑软件打开并看到它们。</span></p>

<p class=MsoBodyTextIndent2 style='line-height:17.0pt;mso-line-height-rule:
exactly'><span lang=ZH-CN>使用无格式文件之前,应该先打开或建立一个无格式文件。通过带有</span><span
lang=EN-US>FORM</span><span lang=ZH-CN>=‘</span><span lang=EN-US>UNFORMATTED</span><span
lang=ZH-CN>’设置项的</span><span lang=EN-US>OPEN</span><span lang=ZH-CN>语句来打开或建立一个文件,或者用省略</span><span
lang=EN-US>FORM</span><span lang=ZH-CN>选项的</span><span lang=EN-US>OPEN</span><span
lang=ZH-CN>语句来打开或建立一个无格式直接访问文件。</span></p>

<p style='margin-left:18.0pt;text-indent:-18.0pt;mso-list:l0 level1 lfo4;
tab-stops:list 18.0pt'><a name="第7_2_2c"></a><![if !supportLists]><span
lang=EN-US style='font-family:宋体;mso-bidi-font-family:宋体;color:red'><span
style='mso-list:Ignore'>c)<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;
</span></span></span><![endif]><span lang=ZH-CN style='font-family:宋体;
color:red'>二进制文件</span><span lang=EN-US style='font-family:宋体;color:red'><o:p></o:p></span></p>

<p class=MsoBodyTextIndent2 style='line-height:17.0pt;mso-line-height-rule:
exactly'><span lang=ZH-CN>二进制文件是处理最快、最简洁的一种文件,也是最紧凑的存储格式,适合于大批量数据的存储。在程序中可以用带有</span><span
lang=EN-US>FORM=</span><span lang=ZH-CN>’</span><span lang=EN-US>BINARY</span><span
lang=ZH-CN>’选项的</span><span lang=EN-US>OPEN</span><span lang=ZH-CN>语句来打开或建立二进制文件。</span></p>

<p style='margin-left:18.0pt;text-indent:-18.0pt;mso-list:l0 level1 lfo4;
tab-stops:list 18.0pt'><a name="第7_2_2d"></a><![if !supportLists]><span
lang=EN-US style='font-family:宋体;mso-bidi-font-family:宋体;color:red'><span
style='mso-list:Ignore'>d)<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;
</span></span></span><![endif]><span lang=ZH-CN style='font-family:宋体;
color:red'>顺序访问文件</span><span lang=EN-US style='font-family:宋体;color:red'><o:p></o:p></span></p>

<p class=MsoBodyTextIndent2 style='line-height:17.0pt;mso-line-height-rule:
exactly'><span lang=ZH-CN>存放在顺序文件中的数据必须一个记录接一个记录地按顺序被访问。也就是说,程序中要读写第</span><span
lang=EN-US>N</span><span lang=ZH-CN>条记录时,必须至少已对前面的</span><span lang=EN-US>N-1</span><span
lang=ZH-CN>记录进行过读操作。在输入输出操作中,有些方法只有在顺序访问的文件中才可能实现,包括低级的输入输出操作、直接列表和名称列表输入输出操作。内部文件也必须使用顺序文件。键盘、显示器和打印机等顺序访问的外部设备必须连接成顺序文件。</span><span
lang=EN-US style='mso-font-kerning:0pt'>OPEN</span><span lang=ZH-CN
style='mso-font-kerning:0pt'>语句默认的打开文件是顺序文件,也可以使用</span><span lang=EN-US>ACCESS=</span><span
lang=ZH-CN>‘</span><span lang=EN-US>SEQUENTIAL</span><span lang=ZH-CN>’</span><span
lang=ZH-CN style='mso-font-kerning:0pt'>设置</span><span lang=ZH-CN>项的</span><span
lang=EN-US>OPEN</span><span lang=ZH-CN>语句</span><span lang=ZH-CN
style='mso-font-kerning:0pt'>以明确文件是</span><span lang=ZH-CN>顺序文件。</span></p>

<p class=MsoBodyTextIndent2 style='line-height:17.0pt;mso-line-height-rule:
exactly'><span lang=ZH-CN>当对顺序文件进行输出时,在</span><span lang=EN-US>OPEN</span><span
lang=ZH-CN>语句之后总是把</span><span lang=EN-US>WRITE</span><span lang=ZH-CN>语句输出的记录作为文件的开头,当前的</span><span
lang=EN-US>WRITE</span><span lang=ZH-CN>语句所输出的记录总作为文件的最后一条记录。如果所写的顺序文件是一个已经存在的文件,则文件原来的内容将全部丢失。对一个顺序文件在读操作后立即进行写操作,则当前写的这个记录就成了文件的最后一个记录,在写操作后立即进行读操作,则必然遇到文件结束记录。如对同一个文件写操作后要进行读操作时,必须使用能够对文件的指针进行重定位的语句重新设置文件的指针。</span></p>

<p style='margin-left:18.0pt;text-indent:-18.0pt;mso-list:l0 level1 lfo4;
tab-stops:list 18.0pt'><a name="第7_2_2e"></a><![if !supportLists]><span
lang=EN-US style='font-family:宋体;mso-bidi-font-family:宋体;color:red'><span
style='mso-list:Ignore'>e)<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;
</span></span></span><![endif]><span lang=ZH-CN style='font-family:宋体;
color:red'>直接访问文件</span><span lang=EN-US style='font-family:宋体;color:red'><o:p></o:p></span></p>

<p class=MsoBodyTextIndent2 style='line-height:17.0pt;mso-line-height-rule:
exactly'><span lang=ZH-CN>存放在直接访问文件中的记录可以以任意顺序进行读写操作。文件中的记录从</span><span
lang=EN-US>1</span><span lang=ZH-CN>开始连续编号,记录的长度是通过</span><span lang=EN-US>OPEN</span><span
lang=ZH-CN>语句中的</span><span lang=EN-US>RECL</span><span lang=ZH-CN>选项来描述的。直接文件中的记录是通过指定要访问的记录号来实现的。因此,如果想要实现数据的随机访问可以使用直接访问文件。直接文件应用的一个最常见的实例就是数据库。在程序中可以用带有</span><span
lang=EN-US>ACCESS=</span><span lang=ZH-CN>’</span><span lang=EN-US>DIRECT</span><span
lang=ZH-CN>’</span><span lang=ZH-CN style='mso-font-kerning:0pt'>设置</span><span
lang=ZH-CN>项的</span><span lang=EN-US>OPEN</span><span lang=ZH-CN>语句来打开或建立直接文件。</span></p>

<p class=MsoBodyTextIndent2 style='line-height:17.0pt;mso-line-height-rule:
exactly'><span lang=ZH-CN>直接文件中的每个记录的长度必须相等。如果实际输出的记录长度不等,则应取输出的所有记录中最大的长度作为每个记录的长度。如果使用一个老文件,在</span><span
lang=EN-US>OPEN</span><span lang=ZH-CN>语句中说明的记录的长度必须与实际的记录长度一致。特别要注意尾随的空格符,它占一个字节。回车换行符不计入记录长度。用直接方式建立的文件可以使用顺序方式打开进行读操作。用顺序方式建立的文件,只要记录长度相等,也可以用直接方式打开进行读操作。</span></p>

<p class=MsoNormal align=center style='margin-top:15.6pt;margin-right:0cm;
margin-bottom:15.6pt;margin-left:0cm;mso-para-margin-top:1.0gd;mso-para-margin-right:
0cm;mso-para-margin-bottom:1.0gd;mso-para-margin-left:0cm;text-align:center'><a
name="第7_2_3"><span lang=EN-US style='font-size:16.0pt;mso-bidi-font-size:12.0pt;
mso-fareast-font-family:楷体_GB2312'>7.2.3</span></a><span lang=EN-US
style='font-size:16.0pt;mso-bidi-font-size:12.0pt;mso-fareast-font-family:楷体_GB2312'>
</span><span lang=ZH-CN style='font-size:16.0pt;mso-bidi-font-size:12.0pt;
font-family:楷体_GB2312;mso-ascii-font-family:"Times New Roman";color:red'>文件记录的存取</span><b><span
lang=EN-US style='font-size:16.0pt;mso-bidi-font-size:12.0pt;mso-fareast-font-family:
楷体_GB2312'><o:p></o:p></span></b></p>

<p style='margin-left:18.0pt;text-indent:-18.0pt;mso-list:l3 level1 lfo6;
tab-stops:list 18.0pt'><a name="第7_2_3a"></a><![if !supportLists]><span
lang=EN-US style='font-family:宋体;mso-bidi-font-family:宋体;color:red'><span
style='mso-list:Ignore'>a)<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;
</span></span></span><![endif]><span lang=ZH-CN style='font-family:宋体;
color:red'>格式化顺序文件</span><span lang=EN-US style='font-family:宋体;color:red'><o:p></o:p></span></p>

<p class=MsoBodyTextIndent2 style='margin-bottom:6.0pt;line-height:17.0pt;
mso-line-height-rule:exactly'><span lang=ZH-CN>—个格式化文件是一个由按顺序写到文件中的有格式记录序列组成的,当要对文件进行读操作时,读取的顺序就是记录在文件中的存放顺序。文件中记录的长度不一定相同,记录也可以是空的。记录用回车符</span><span
lang=EN-US>(0DH)</span><span lang=ZH-CN>和换行符</span><span lang=EN-US>(0AH)</span><span
lang=ZH-CN>分开。</span><span lang=EN-US><o:p></o:p></span></p>

<p class=MsoBodyTextIndent2 style='text-indent:0cm;mso-char-indent-count:0;
line-height:17.0pt;mso-line-height-rule:exactly;mso-char-indent-size:0cm'><!--[if gte vml 1]><o:wrapblock><v:group
  id="_x0000_s1026" style='position:absolute;left:0;text-align:left;
  margin-left:42.15pt;margin-top:0;width:372.75pt;height:70.2pt;z-index:1;
  mso-position-vertical:top' coordorigin="2217,1440" coordsize="7455,1404">
  <v:group id="_x0000_s1027" style='position:absolute;left:2217;top:1440;
   width:7455;height:1404' coordorigin="2007,3000" coordsize="6510,1404">
   <v:shapetype id="_x0000_t7" coordsize="21600,21600" o:spt="7" adj="5400"
    path="m@0,l,21600@1,21600,21600,xe">
    <v:stroke joinstyle="miter"/>
    <v:formulas>
     <v:f eqn="val #0"/>
     <v:f eqn="sum width 0 #0"/>
     <v:f eqn="prod #0 1 2"/>
     <v:f eqn="sum width 0 @2"/>
     <v:f eqn="mid #0 width"/>
     <v:f eqn="mid @1 0"/>
     <v:f eqn="prod height width #0"/>
     <v:f eqn="prod @6 1 2"/>
     <v:f eqn="sum height 0 @7"/>
     <v:f eqn="prod width 1 2"/>
     <v:f eqn="sum #0 0 @9"/>
     <v:f eqn="if @10 @8 0"/>
     <v:f eqn="if @10 @7 height"/>
    </v:formulas>
    <v:path gradientshapeok="t" o:connecttype="custom" o:connectlocs="@4,0;10800,@11;@3,10800;@5,21600;10800,@12;@2,10800"
     textboxrect="1800,1800,19800,19800;8100,8100,13500,13500;10800,10800,10800,10800"/>
    <v:handles>
     <v:h position="#0,topLeft" xrange="0,21600"/>
    </v:handles>
   </v:shapetype><v:shape id="_x0000_s1028" type="#_x0000_t7" style='position:absolute;
    left:2007;top:3000;width:6510;height:468' adj="1499" fillcolor="#333">
    <v:fill opacity=".5"/>
   </v:shape><v:rect id="_x0000_s1029" style='position:absolute;left:2007;
    top:3468;width:6090;height:936' fillcolor="silver">
    <v:fill opacity=".5"/>
   </v:rect><v:line id="_x0000_s1030" style='position:absolute;flip:y' from="8097,3936"
    to="8517,4404"/>
  </v:group><v:shapetype id="_x0000_t202" coordsize="21600,21600" o:spt="202"
   path="m,l,21600r21600,l21600,xe">
   <v:stroke joinstyle="miter"/>
   <v:path gradientshapeok="t" o:connecttype="rect"/>
  </v:shapetype><v:shape id="_x0000_s1031" type="#_x0000_t202" style='position:absolute;
   left:8307;top:1908;width:840;height:468' fillcolor="silver" stroked="f">
   <v:fill opacity=".5"/>
   <v:textbox style='mso-next-textbox:#_x0000_s1031'>
    <![if !mso]>
    <table cellpadding=0 cellspacing=0 width="100%">
     <tr>
      <td><![endif]>
      <div>
      <p class=MsoNormal align=right style='text-align:right;text-indent:10.5pt;
      mso-char-indent-count:1.0;mso-char-indent-size:10.5pt'><span lang=EN-US>0A</span></p>
      </div>
      <![if !mso]></td>
     </tr>
    </table>
    <![endif]></v:textbox>
  </v:shape><v:line id="_x0000_s1032" style='position:absolute' from="9672,1440"
   to="9672,2376"/>
  <v:shape id="_x0000_s1033" type="#_x0000_t202" style='position:absolute;
   left:2322;top:1911;width:1260;height:468' fillcolor="silver" stroked="f">
   <v:fill opacity=".5"/>
   <v:textbox style='mso-next-textbox:#_x0000_s1033'>
    <![if !mso]>
    <table cellpadding=0 cellspacing=0 width="100%">
     <tr>
      <td><![endif]>
      <div>
      <p class=MsoNormal><span lang=ZH-CN style='font-family:宋体;mso-ascii-font-family:
      "Times New Roman";mso-hansi-font-family:"Times New Roman"'>记录</span><span
      lang=EN-US>N</span></p>
      </div>
      <![if !mso]></td>
     </tr>
    </table>
    <![endif]></v:textbox>
  </v:shape><v:shape id="_x0000_s1034" type="#_x0000_t202" style='position:absolute;
   left:4740;top:1911;width:630;height:468;flip:x' fillcolor="silver"
   stroked="f">
   <v:fill opacity=".5"/>
   <v:textbox style='mso-next-textbox:#_x0000_s1034'>
    <![if !mso]>
    <table cellpadding=0 cellspacing=0 width="100%">
     <tr>
      <td><![endif]>
      <div>
      <p class=MsoNormal><span lang=EN-US>0D</span></p>
      </div>
      <![if !mso]></td>
     </tr>
    </table>
    <![endif]></v:textbox>
  </v:shape><v:shape id="_x0000_s1035" type="#_x0000_t202" style='position:absolute;
   left:5367;top:1911;width:630;height:468' fillcolor="silver" stroked="f">
   <v:fill opacity=".5"/>
   <v:textbox style='mso-next-textbox:#_x0000_s1035'>
    <![if !mso]>
    <table cellpadding=0 cellspacing=0 width="100%">
     <tr>
      <td><![endif]>
      <div>
      <p class=MsoNormal><span lang=EN-US>0A</span></p>
      </div>
      <![if !mso]></td>
     </tr>
    </table>
    <![endif]></v:textbox>
  </v:shape><v:line id="_x0000_s1036" style='position:absolute' from="5367,1908"
   to="5367,2844"/>
  <v:line id="_x0000_s1037" style='position:absolute' from="4842,1908" to="4842,2844"/>
  <v:line id="_x0000_s1038" style='position:absolute' from="5892,1908" to="5892,2844"/>
  <v:shape id="_x0000_s1039" type="#_x0000_t202" style='position:absolute;
   left:6522;top:1908;width:1260;height:468' fillcolor="silver" stroked="f">
   <v:fill opacity=".5"/>
   <v:textbox style='mso-next-textbox:#_x0000_s1039'>
    <![if !mso]>
    <table cellpadding=0 cellspacing=0 width="100%">
     <tr>
      <td><![endif]>
      <div>
      <p class=MsoNormal><span lang=ZH-CN style='font-family:宋体;mso-ascii-font-family:
      "Times New Roman";mso-hansi-font-family:"Times New Roman"'>记录</span><span
      lang=EN-US>N+1</span></p>
      </div>
      <![if !mso]></td>
     </tr>
    </table>
    <![endif]></v:textbox>
  </v:shape><v:shape id="_x0000_s1040" type="#_x0000_t202" style='position:absolute;
   left:8097;top:1908;width:630;height:468;flip:x' fillcolor="silver"
   stroked="f">
   <v:fill opacity=".5"/>
   <v:textbox style='mso-next-textbox:#_x0000_s1040'>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -