Javen的文档


文件系统

<p>操作文件大体步骤: 1.关联文件AssignFile 2.打开读写Reset、Rewrite、Append 3.开始读写操作 4.关闭文件CloseFile</p> <p>关联文本文件变量与文本文件 procedure AssignFile(var F;FileName:String); 如:AssignFile(FishcFile,&#039;c:/Fishc.txt&#039;);或AssignFile(FishcFile,SaveDialog1.filename);</p> <h3>文本文件的打开</h3> <p><strong>Reset</strong>:以只读方式打开,例:Reset(FishcFile); procedure Reset(var F[: File;RecSize: Word]); <strong>Rewrite</strong>:以只写方式创建和打开(新建覆盖已有,指针在开头) procedure Rewrite(var F:File[Recsize:Word]); <strong>Append</strong>:以追加方式打开(指针在结尾) procedure Append(var F:Text); --中括号内容可选</p> <h3>文件的关闭</h3> <p><strong>CloseFile</strong>: procedure CloseFile(var F); 动作:更新写到磁盘中,断开变量与实际文件的联系。</p> <h3>文本文件的写操作</h3> <p><strong>Write</strong>:写入文件。 procedure Write(var F: Text;]P1[P2,...Pn]); <strong>Writeln</strong>:写入文件并加上换行符。最后一个写入后面加</p> <h3>文本文件的读操作</h3> <p><strong>Read</strong>:读入文件。 procedure Read(var F: Text;]P1[P2,...Pn]); <strong>Readln</strong>:读入文件并加上换行符。最后一个写入后面加 读取数值型,默认用空格隔开。 读取字符型,将一直读取到换行符为止。读取指定数量的字符,变量类型建议Sting[N]型。</p> <h5>行尾与文件尾判断</h5> <p>通过函数Eoln和Eof,行尾文件尾返回True,否则返回False。空文件也返回True。 function Eoln[(var F:Text)]: Boolean;用的少 function Eof[(var F:Text)]: Boolean;用的多</p> <p>下面内容应该少用</p> <h3>记录型文件</h3> <h5>记录型文件变量</h5> <p>例如: 在implementation下 type FishcOil = record name: String[20];//要限定长度 rdate: Integer; sex: Char; end;</p> <p>var VFFishcOil: File of FishcOil; </p> <p>关联和打开和上面文本文件一样,只是不能用Append过程打开记录型文件。Append仅限文本文件。 Reset打开记录文件的属性是读或写。 例子代码:</p> <pre><code class="language-delphi">type FishcOil = record name: String[20];//要限定长度 rdate: Integer; sex: Char; end; var VFFishcOil: File of FishcOil; {$R *.dfm} procedure TForm1.FormCreate(sender:TObject); var CurDir: String; begin GetDir(0,CurDir); //获得当前目录的函数,0表示当前目录,1表示A盘,2表示B盘,3表示C盘... AssignFile(VFFishcOil,CurDir + &amp;#039;\Fishc.dat&amp;#039;); If FileExists(CurDir + &amp;#039;\Fishc.dat&amp;#039;) then \\判断目录文件是否存在 Reset(VFFishcOil) else Rewrite(VFFishcOil); {代码} Read(VFFishcOil,V1,V2); //上面只是打开,还没有读写操作 //CloseFile(VFFishcOil); //不能在创建的时候关闭,需要放到FormClose中 end; end.</code></pre> <h5>记录型文件的记录数</h5> <p>记录是顺序排列,每条都有一个编号,记录从0开始,最后一个记录是N-1。 函数function FileSize(Var F): Integer;用来返回记录数。 GetDir(0,CurDir); //获得当前目录的函数,0表示当前目录,1表示A盘,2表示B盘,3表示C盘...</p> <h5>移动和检测记录文件的文件指针</h5> <p>默认每次从头开始写。</p> <p><strong>Seek过程</strong>:将文件指针移动到文件中的指定记录。 procedure Seek(var F;N:Longint) 例:Seek(VFlady,FileSize(VFlady)); <strong>FilePos函数</strong>:返回文件指针当前所指的记录的记录号。 function FilePos(var F):Longint;</p> <p>读取并修改记录: 如果忘记二次调用Seek过程,结果将用更新后的信息覆盖下一条第五条内容 Seek(VFlady,4); Read(VFlady,v1); v1.name:=&#039;李四&#039;; Seek(VFlady,4) Write(VFlady,v1);</p> <p>把文件指针定位到文件尾的方法: 写操作前Seek过程把文件指针移到文件最后一条记录之后。知道有多少条记录用FileSize获得。</p>

页面列表

ITEM_HTML