前言: Delphi 支持三种文件类型: 文本文件、记录文件、无类型文件。 文本文件是以行为单位进行读、写的。由于每一行的长度不一定相同,不能计算出给定行在文件中的确切位置,因而只能顺序地读写。 文本文件只能单独为读或写而打开,在一个打开的文本文件上同时进行读、写操作是不允许的。 文本文件的打开需要两个步骤:1.文件变量与文件名关联;2.初始化读写。 1.文件变量与文件名关联: AssignFile(VarTxt, FileName); FileName 如果省略路径将默认当前目录。 2.初始化读写有三种方式: (1) Reset: 只读打开, 指针移到文件头; (2) Rewrite: 创建新文件并打开, 只写; (3) Append: 从尾部追加, 指针当然在文件尾。 文件不存在时使用 Reset 或 Append 会引发一个I/O异常。 最后用 CloseFile 关闭文件。 为保持兼容,Delphi 也允许用户用 Assign 建立关联, 用 Close 关闭文件。
Unit1; Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; TForm1 = (TForm) Memo1: TMemo; Button1: TButton; Button2: TButton; Button3: TButton; Button4: TButton; Button5: TButton; Button6: TButton; Button7: TButton; Button1Click(Sender: TObject); Button2Click(Sender: TObject); Button3Click(Sender: TObject); Button4Click(Sender: TObject); Button5Click(Sender: TObject); Button6Click(Sender: TObject); Button7Click(Sender: TObject); ; Form1: TForm1; F: Text; FileName: = ; TForm1.Button1Click(Sender: TObject); AssignFile(F,FileName); Rewrite(F); Writeln(F, ); Writeln(F, ); CloseFile(F); ; TForm1.Button2Click(Sender: TObject); s: ; AssignFile(F,FileName); Reset(F); Readln(F, s); ShowMessage(s); Readln(F, s); ShowMessage(s); CloseFile(F); ; TForm1.Button3Click(Sender: TObject); AssignFile(F,FileName); Append(F); Writeln(F, ); Writeln(F, ); CloseFile(F); ; TForm1.Button4Click(Sender: TObject); s: ; AssignFile(F,FileName); Reset(F); Memo1.Clear; Eof(F) Readln(F, s); Memo1.Lines.Add(s); ; CloseFile(F); ; TForm1.Button5Click(Sender: TObject); AddSpace(s: ; n: Word): ; Length(s) < n s := s + ; ; Result := s; ; name: []; address: []; AssignFile(F, FileName); Rewrite(F); name := ; name := AddSpace(name,); address := ; address := AddSpace(address,); Writeln(F, name, address); name := ; name := AddSpace(name,); address := ; address := AddSpace(address,); Writeln(F, name, address); name := ; name := AddSpace(name,); address := ; address := AddSpace(address,); Writeln(F, name, address); CloseFile(F); ; TForm1.Button6Click(Sender: TObject); name: []; address: []; AssignFile(F, FileName); Reset(F); Memo1.Clear; Eof(F) Readln(F, name); Memo1.Lines.Add(name); ; CloseFile(F); Reset(F); Eof(F) Readln(F, name, address); Memo1.Lines.Add(address); ; CloseFile(F); ; TForm1.Button7Click(Sender: TObject); name: []; age: Word; birthday: TDate; AssignFile(F,FileName); Rewrite(F); name := ; age := ; birthday := StrToDate(DateToStr(Now-*)); Writeln(F,name,age,birthday); CloseFile(F); Reset(F); Readln(F,name,age,birthday); Memo1.Clear; Memo1.Lines.Add(name); Memo1.Lines.Add(IntToStr(age)); Memo1.Lines.Add(DateToStr(birthday)); CloseFile(F); ; .
:我在用着的