赞
踩
1000万数据的stringlist ,我想模糊查询出 包含字符串 ‘abc’ 的所有数据,
一般的算法就是一个循环遍历,然后pos每行是否含 ‘abc’
但是循环的速度真的有点慢。
后来对比了几个pos的效率,原来可以快2倍。
- procedure TForm1.Button2Click(Sender: TObject);
- var
- ls: TOpenStringList;
- i,n: integer;
- t: int64;
- ls1: TStringList;
- begin
- ls := TOpenStringList.Create;
- ls1 := TStringList.Create;
- ///添加1000万///
- t := GetTickCount;
- for i:=0 to 10000000 do
- begin
- ls.Add('a' + IntToStr(i));
- end;
- t := GetTickCount - t;
- Memo1.Lines.Add('TOpenStringList:add:'+FloatToStr(t / 1000));
-
-
- 添加1000万//
- t := GetTickCount;
- for i:=0 to 10000000 do
- begin
- ls1.Add('a' + IntToStr(i));
- end;
- t := GetTickCount - t;
- Memo1.Lines.Add('TStringList:add:' + FloatToStr(t / 1000));
- //查找测试//
- t := GetTickCount;
- ls.Find('a667788',i);
- t := GetTickCount - t;
- Memo1.Lines.Add('TOpen

赞
踩
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。