{
文本文件是以行为单位进行读、写的的。由于每一行的长度不一定相同,不能计算出给定行在文件中的确切位置,因而只能顺序地读写。
文本文件只能单独为读或写而打开,在一个打开的文本文件上同时进行读、写操作是不允许的。
}
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;