操作文本文件
{ 文本文件是以行为单位进行读、写的的。由于每一行的长度不一定相同,不能计算出给定行在文件中的确切位置,因而只能顺序地读写。 文本文件只能单独为读或写而打开,在一个打开的文本文件上同时进行读、写操作是不允许的。 } var F:Text; //与TextFile相同 FileName:String='Test.Txt';//省略路径,默认当前 procedure CreateTxtFile; begin //文件变量与文件关连 AssignFile(F,FileName); //初始化读写,文件不存在时用Reset,Append会引用IO异常 Reset(F); //只读打开,指针移到文件头。 Rewrite(F); //创建新文件并打开,只写,如果文件存在则覆盖。 Append(F); //从尾部追加,指针在文件尾。 end; //写文件,为防止中文乱码,可将字符串格式化 UTF8Encode(str) procedure WriteTxtFile; begin AssignFile(F,FileName); Rewrite(F); WriteLn(F,UTF8Encode('第一行')); WriteLn(F,'第二行'); CloseFile(F); end; //读文件 procedure ReadTxtFile; var str:String; begin AssignFile(F,FileName); Reset(F); ReadLn(F,str); //第一行 ReadLn(F,str); //第二行,过多则为空 CloseFile(F); end; //追加 procedure AppendTxtFile; begin AssignFile(F,FileName); Append(F); WriteLn(F,'第三行'); //如果只Write则追加到末行行尾 WriteLn(F,'第四行'); CloseFile(F); end; //读全部 procedure ReadAllTxtFile; var str:String; begin AssignFile(F,FileName); Reset(F); while Not Eof(F) do begin ReadLn(F,str); Memo1.Lines.Add(str); end; CloseFile(F); end;