为啥不起作用?
为啥不起作用?procedure RemoveDuplicateLines(const FileName: string);
var
Lines: TStringList;
I: Integer;
begin
Lines := TStringList.Create;
try
// 加载文本文件的内容到字符串列表中
Lines.LoadFromFile(FileName);
// 去除重复行
for I := Lines.Count - 1 downto 1 do
begin
if Lines.IndexOf(Lines) < I then
Lines.Delete(I);
end;
// 将去重后的内容保存回文本文件
Lines.SaveToFile(FileName);
finally
Lines.Free;
end;
end;
procedure TForm7.Button2Click(Sender: TObject);
begin
RemoveDuplicateLines('X:\列表.txt');
ShowMessage('重复行已删除!');
end; 本帖最后由 万一行了呢 于 2024-2-13 15:01 编辑
违规删帖 哪里不起作用 总得把问题说清楚啊 for I := Lines.Count - 1 downto 1 do
每删一行,这里的Lines.Count会变小吧?Lines里的最后几行没有进入循环进行比较... 是不是文本内容保存字符形式的问题导致对比不了 查查indexof的使用方法吧,返回值的解释 sai609 发表于 2024-2-13 15:13
哪里不起作用 总得把问题说清楚啊
没报错,但是重复行,也没有去掉啊。 可能是保存到文件失败了,你可以打印输出一下删除后的内容有没有问题 DEATHTOUCH 发表于 2024-2-13 17:27
可能是保存到文件失败了,你可以打印输出一下删除后的内容有没有问题
@DEATHTOUCH
https://www.52pojie.cn/thread-1889621-1-1.html
升级版了,请移步,多谢!
新年好,祝:万事如意,心想事成!{:301_974:}
页:
[1]