如何保存所有重复的行,准确保存而不是删除。
这就是删除重复项的方式,但我想知道如何将它们保存在单独的文件中?
var
f1: TextFile;
st: string;
s: TStringList;
begin
AssignFile(f1, '1.txt');
reset(f1);
s := TStringList.Create;
While not EOF(f1) do
begin
readln(f1, st);
If s.IndexOf(st) < 0 then
s.Add(st);
end;
s.SaveToFile('2.txt');
s.Free;
CloseFile(f1);
end;
也就是说,有几行:
123
123
4444
55555
123
和基本输出:
123
123
123
附录:您可以这样做:
var
f1: TextFile;
st: string;
s, s1: TStringList;
begin
AssignFile(f1, '1.txt');
reset(f1);
s := TStringList.Create;
s1 := TStringList.Create;
while not EOF(f1) do
begin
readln(f1, st);
if s.IndexOf(st) < 0 then
s.Add(st)
else
s1.Add(st);
end;
s.SaveToFile('2.txt');
s1.SaveToFile('double.txt');
s.Free;
s1.Free;
CloseFile(f1);
end;
但事实证明,并非所有重复项都保存在double.txt文件中。
也就是说,有几行:
123
123
4444
55555
123
在文件 2.txt 中,结果是
123 - Вот тут запись а она должна быть в файле **double.txt**
4444
55555
在文件double.txt中,结果是
123
123
也就是说,一行123写错了地方。如何解决这个问题?
嗯,我猜对了。显然不是最好的选择。