procedure TForm1.Button1Click(Sender: TObject);
var
F1,F2 : TextFile;
s : string;
begin
AssignFile(F1,'E:\a.txt');
Reset(F1);
AssignFile(F2,'E:\a.bak');
Rewrite(F2);
while not Eof(F1) do
begin
Readln(F1, s);
if AnsiPos('dfs',s)=0 then
begin
Writeln(F2,s);
end;
end;
CloseFile(F1);
Erase(F1);
CloseFile(F2);
RenameFile('E:\a.bak','E:\a.txt');
用TStringList后台处理,还是比较快的!
procedure TForm1.Button1Click(Sender: TObject);
var i:integer;b,d:TstringList;l:string;
begin
if OpenDialog1.Execute then
begin
b:=TstringList.Create ;
d:=TstringList.Create ;
d.Clear;
b.LoadFromFile(OpenDialog1.FileName);//打开相应的文件逐行读取;
for i:=0 to b.Count-1 do
begin
l:=b.Strings[i];
if pos('123',l)>0 then //查找到含指定字符串的一行;
l:=''; //清空;
if l<>'' then //字符串不为空则保存,为空继续执行
d.Add(l);
end;
end;
d.SaveToFile(OpenDialog1.FileName); //读完后保存新生成的文件,若不想覆盖
d.Free; 原文件,可以用OpenDialog1.FileName
b.Free; 直接加个后缀,这样就可以不破坏原文件
ShowMessage('Ok'); 而得到一个新的文件!
end;