已经排序好的数据中找出重复的数据(300分)

  • 主题发起人 主题发起人 0000
  • 开始时间 开始时间
0

0000

Unregistered / Unconfirmed
GUEST, unregistred user!
17002156329
17002156329
17002156329
18002156329
18002156329
18002156329
18002156329
18002156329
18002156329
18002156329

怎么样从上面的已经排序好的数据中找出重复的数据,然后变成下面的样子:
17002156329
****17002156329
****17002156329
****17002156329
18002156329
****18002156329
****18002156329
****18002156329
****18002156329
****18002156329
****18002156329

然后再让用户选择删除重复的数据,再变成下面的样子:
17002156329
18002156329

以上全部操作都是TXT文本文件,数据量大约在15,000条左右。

谢谢您的帮助!!!
 
var
sl, sl1: TStringList;
i: Integer;
s: string;
begin
sl := TStringList.Create;
sl.LoadFromFile('a.txt');
sl1 := TStringList.Create;
s := '';
for i := 0 to sl.Count - 1 do
if sl <> s then
begin
s := sl;
sl1.Add(s);
end;
sl1.SaveToFile('b.txt');
end;

b.txt 中就不再包含相同的行

-----
http://www.8421.org
 
qdyoung的方法是可以的!
 
还有没有简单的方法?
 
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;

type
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
Memo1: TMemo;
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;
s: TStringList;

implementation

{$R *.DFM}

procedure TForm1.Button1Click(Sender: TObject);
var
i: Integer;
temp: string;
begin
temp:='';
for i := 0 to s.Count - 1 do
if s <> temp then
temp := s
else
s:='****'+ s;
memo1.Lines.text:=s.text;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
s := TStringList.Create;
s.LoadFromFile('a.txt');
end;

procedure TForm1.Button2Click(Sender: TObject);
var
i,n:Integer;
begin
i:=0;
while i< s.Count do begin
if pos('****',s)>0 then
begin
s.delete(i);
i:=i-1;
end;
inc(i);
end;
memo1.lines.clear;
memo1.lines.text:=s.text;
end;

end.
 
不错,
linsb的不错,删除也有了。
 
多人接受答案了。
 
后退
顶部