如何在最快的情况下去除不定长数组中的重复记录
解决方案 »
- 大量插入数据,因会有重复数据,用try异常处理快,还是先select在插入快?
- 怎么用 程序 检查 注册表最后修改的时间 ?? 和怎么用程序 备份注册表 急!!!!!!!!!!!!!!!!!!!!
- 各位兄弟,怎么做成这样的界面啊,可用分只有十分,送你个十分健康,望海涵
- 得到图象的尺寸(厘米为单位)
- 问大家delphi培训什么价钱?
- 专科生不能做程序员?
- 关于TDBLookupComboBox的困惑
- 请问TVarData的用法? 谢谢!
- 高分咨询::请问在哪里可以下到那像OICQ一样酷的控件!!??难道真的没有人知道吗??一定送高分的!!!!
- 简单索引使用问题
- 谁能告诉用一个checkbox来控制背景音乐的播放
- 异常问题
strList: Tstringlist;
isIn :boolean;
begin
for i:=low(Array) to High(Array) do
begin
isIn ;= false;
for j:= 0 to strList.Count-1 do
begin
if Arrar[i]= strList[j] then
isIn ;= true;
if not isIn then
strList.Add(Arrar[i]);
ned;
end;
strList: Tstringlist;
isIn :boolean;
begin
strList:= Tstringlist.Create;
for i:=low(Array) to High(Array) do
begin
isIn := false;
for j:= 0 to strList.Count-1 do
begin
if Arrar[i]= strList[j] then
isIn := true;
if not isIn then
strList.Add(Arrar[i]);
ned;
end;
var
str,str1:array of string;
i,j,k:integer;
begin
setlength(str,memo1.Lines.Count);
setlength(str1,memo1.Lines.Count);
for i:=low(str) to high(str) do
begin
str[i]:=memo1.Lines.Strings[i];
end;
str1:=str;for j:=low(str1) to high(str1) do begin
k:=0;
for i:=low(str) to high(str) do
begin
if str1[j]='' then break;
if str1[j]=str[i] then inc(k);
if k>=2 then str1[j]:='';
end;
end;memo2.Clear ;
for i:=low(str1) to high(str1) do
begin
if str1[i]='' then continue;
memo2.Lines.Add(str1[i]);
end;end;
memo2中将会显示您筛选后的无重复的数据!
您稍微改一下,就可以做一个通用的筛选函数了。呵呵:)
以后在数组中添加记录的时候可首先用一个循环判
断将要添加记录是否和数组中的某条记录相同,
if 相同 then
else
...