在Memo中加入行时,Memo有相同行时不加,不同的就加入,这样又应该怎样写呢? ( 积分: 100 )

  • 主题发起人 主题发起人 菜鸟黄
  • 开始时间 开始时间

菜鸟黄

Unregistered / Unconfirmed
GUEST, unregistred user!
在Memo中加入行时,Memo有相同行时不加,不同的就加入,这样又应该怎样写呢?
 
if memo.lines.indexof(s)=-1 then mome.lines.add(s)
 
调试运行ok;
我用了两个stringlist类,目的是把数据的分析都放在内存中,以加快速度;
TStringList(aStrings).Sort;排序也是为了加快速度

procedure TForm1.Button1Click(Sender: TObject);
function isRepetiton(sTemp: string;aStrings: TStrings):boolean;
var
i,iCount: integer;
begin
result:= false;
iCount:= 0;
if Assigned(aStrings) then
for i:=0 to aStrings.Count-1 do
if aStrings.Strings= sTemp then
begin
inc(iCount);
if iCount>=2 then
begin
Result:= true;
Break;
end;
end;
end;
var
aStrings,bStrings: TStrings;
i: integer;
begin
aStrings:= TStringList.Create;
bStrings:= TStringList.Create;
aStrings.Assign(Memo1.Lines);
TStringList(aStrings).Sort;

try
for i:= 0 to aStrings.Count-1 do
begin
if not isRepetiton(aStrings.Strings,aStrings) then
bStrings.Add(aStrings.Strings);
end;
Memo1.Lines.Assign(bStrings);
finally
aStrings.Free;
bStrings.Free;
end;
end;
 
to 那年黄梅花开
我试一下.
真是非常谢谢你,从你身上学了好多有用的东西,我的QQ是:38993286
这是我的QQ号码,以后还有很多地方和你交流.
 
我是主要做数据库的软件的,对于这种处理不是太了解,还请大家多多指教.
 
我也是菜鸟,只是你比我更菜,哈哈
 
呵呵~谢谢
 
接受答案了.
 
后退
顶部