主要是想检测 memo里面有没有重复的数据。。但是我的这个代码不能实现功能,比如memo里面有40个数据 执行一次代码之后就剩下20个数据了。。然后再执行一次就是10个。。不知道是哪里出错了 贴出代码。procedure TForm1.Button1Click(Sender: TObject);
var
i,j:integer;begin
for i:=0 to memo1.lines.count-1 do
begin
for j:=1 to memo1.lines.count-1 do
begin
if memo1.Lines[i]=memo1.Lines[j] then
begin
memo1.Lines.Delete(i);
end; end;
end;
edit1.Text:=inttostr(memo1.Lines.count);
end;
var
i,j:integer;begin
for i:=0 to memo1.lines.count-1 do
begin
for j:=1 to memo1.lines.count-1 do
begin
if memo1.Lines[i]=memo1.Lines[j] then
begin
memo1.Lines.Delete(i);
end; end;
end;
edit1.Text:=inttostr(memo1.Lines.count);
end;
解决方案 »
- 恳请赐教,indy tcp文件传输问题
- 如何让DBGrid的高亮度条与相联的ADOQuery当前记录保持同步
- 问一个分布式事务的问题(同时对SQL Server和Oracle操作)
- 请教TIWServerController控件中属性ComInitialization的问题
- 新手提问:遍历比较文件名。。。???
- 为什么我打WinExec('c:\ID_List.chm',sw_restore);没有反应的啊,但是在windows的run里面却可以啊
- dbgrid 多选问题100分
- 请问Delphi有没有画曲线的控件
- 如何同时删除主表和从表的记录?
- 如果看.dpr文件?
- ImageEN控件安装,老出错
- image1.Canvas.Pen.Width := 10 不起作用的原因?
i,j,m,n:Integer;
s,s1:string;
begin
i:=self.Memo1.Lines.Count;
if i=0 then
Exit;
j:=0;
while j<self.Memo1.Lines.Count do
begin
s:=self.Memo1.Lines.Strings[j];
for n:=1 to self.Memo1.Lines.Count-1 do
begin
if n=self.Memo1.Lines.Count-1 then
j:=j+1;
s1:=Self.Memo1.Lines.Strings[n];
if s=s1 then
begin
self.Memo1.Lines.Delete(n);
Continue;
end;
end;
end;
end;
改为
for j:=1 to memo1.lines.count-1 do
for j:= i + 1 to memo1.lines.count-1 do
var
i,j,m,n,k:Integer;
s,s1:string;
begin
i:=self.Memo1.Lines.Count;
if i=0 then
Exit;
j:=0;
while j<self.Memo1.Lines.Count do
begin
s:=self.Memo1.Lines.Strings[j];
n:=1;
while n<self.Memo1.Lines.Count do
begin
if n=j then
begin
n:=n+1;
Continue;
end;
s1:=Self.Memo1.Lines.Strings[n];
if s=s1 then
begin
self.Memo1.Lines.Delete(n);
Continue;
end
else
n:=n+1;
end;
j:=j+1;
end;
end;