uses
System.SysUtils, System.Classes;
procedure DeleteContainingLinesOnce(var originalList: TStringList; const deleteList: TStringList);
var
i, j: Integer;
begin
for j := 0 to deleteList.Count - 1 do
begin
for i := 0 to originalList.Count - 1 do
begin
if Pos(deleteList[j], originalList[i]) > 0 then
begin
originalList.Delete(i);
Break; // 只删除一次,跳出内层循环
end;
end;
end;
end;
procedure Test;
var
originalList, deleteList: TStringList;
begin
originalList := TStringList.Create;
deleteList := TStringList.Create;
try
// 添加测试数据到 originalList
originalList.Add('第1章 pie');
originalList.Add('第1章 split');
originalList.Add('第2章 tart');
originalList.Add('第3章 juice');
originalList.Add('第3章 bread');
originalList.Add('第4章 soda');
// 添加要删除的行到 deleteList
deleteList.Add('第1章');
deleteList.Add('第3章');
// 删除 originalList 中包含 deleteList 中文本的行(每个文本只删除一次)
DeleteContainingLinesOnce(originalList, deleteList);
// 输出结果
Writeln('删除后的内容:');
Writeln(originalList.Text);
readln;
finally
originalList.Free;
deleteList.Free;
end;
end;
begin
Test;
end.
Copyright © 2014 DelphiW.com 开发 源码 文档 技巧 All Rights Reserved
晋ICP备14006235号-8 晋公网安备 14108102000087号
执行时间: 0.10675501823425 seconds