操作文本文件

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

 

posted on 2012-06-04 10:06  天 火  阅读(364)  评论(0编辑  收藏  举报