procedure TForm1.Button1Click(Sender: TObject); var fi:TextFile; //system单元中有textfile数据类型的定义 a1:string; i:integer; strsql:string; begin i:=1; strsql:=''; AssignFile(fi,'e:\22.txt'); Reset(fi); while not Eof(fi) do begin Readln(fi,a1); strsql:=strsql+a1; if (i mod 2=0) then begin //showmessage(strsql); strsql:=''; end; i:=i+1; end; CloseFile(fi); end; 这里的关键是:while not eof(fi) do ,在这个循环里可以逐条取得数据。
var Form1: TForm1; implementation {$R *.dfm} var F: Text; //TextFile 和 Text 是一样的 FileName: string = 'c:\temp\test.txt'; //写文件 procedure TForm1.Button1Click(Sender: TObject); begin AssignFile(F,FileName); Rewrite(F); //会覆盖已存在的文件 Writeln(F, '第一行'); Writeln(F, '第二行'); CloseFile(F); end; //读文件(先执行写文件) procedure TForm1.Button2Click(Sender: TObject); var s: string; begin AssignFile(F,FileName); Reset(F); //只读打开 Readln(F, s); //读取 ShowMessage(s); //显示: 第一行 Readln(F, s); //继续读取 ShowMessage(s); //显示: 第二行 CloseFile(F); end; //追加 procedure TForm1.Button3Click(Sender: TObject); begin AssignFile(F,FileName); Append(F); //打开准备追加 Writeln(F, '第三行'); Writeln(F, '第四行'); CloseFile(F); end; //读取全部(需要Memo帮忙显示) procedure TForm1.Button4Click(Sender: TObject); var s: string; begin AssignFile(F,FileName); Reset(F); //只读打开 Memo1.Clear; while not Eof(F) do begin Readln(F, s); Memo1.Lines.Add(s); end; CloseFile(F); end; //分列写入 procedure TForm1.Button5Click(Sender: TObject); //这个过程级函数的功能是: 用空格把 s 凑够 n 的长度
function AddSpace(s: string; n: Word): string; begin while Length(s) < n do begin s := s + ' '; end; Result := s; end; var name: string[8]; address: string[16]; begin AssignFile(F, FileName); Rewrite(F); name := '张三'; name := AddSpace(name,8); address := '浙江金华'; address := AddSpace(address,16); Writeln(F, name, address); name := '李四儿'; name := AddSpace(name,8); address := '浙江金华'; address := AddSpace(address,16); Writeln(F, name, address); name := '321.com 321团购网'; name := AddSpace(name,8); address := AddSpace(address,16); Writeln(F, name, address);
CloseFile(F);
{写入的结果是: 张三 山东泰安 李四儿 浙江金华 321.com 321团购网}
end; //分列读取 procedure TForm1.Button6Click(Sender: TObject); var name: string[8]; address: string[16]; begin AssignFile(F, FileName); Reset(F); Memo1.Clear; while not Eof(F) do begin Readln(F, name); Memo1.Lines.Add(name); end; CloseFile(F); Reset(F); while not Eof(F) do begin Readln(F, name, address); Memo1.Lines.Add(address); end; CloseFile(F);