Delphi6中如何使用Dictionary?

chhrsas 2012-04-18 01:25:32
uses ComObj, ActiveX;

procedure TForm1.btn1Click(Sender: TObject);
var
List: Variant;
A: String;
begin
List := CreateOLEObject('Scripting.Dictionary');
List.Add(111, 'abc');
if List.Exists(111) then
A := List.Item(111);//报错,对象不存在
end;

因为有一组数量很大的对象需要查找,所以我想在Delphi6中使用Dictionary,但Delphi6不带,在网上找到用Scripting.Dictionary,但怎么也用不了,求教?

如查有别的方法或单元,也请告知,谢谢。
...全文
624 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
jonathanscor 2012-04-18
  • 打赏
  • 举报
回复
楼上的都说完了,stringList最常用了吧
gobiz 2012-04-18
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 的回复:]

这些容器都不支持遍历,头疼。
[/Quote]

不支持遍历???

var
i: Integer;
SS: TStringList;
begin
SS := TStringList.Create;
try
for i:=0 to SS.Count-1 do
begin
ShowMessage(SS.Names[i]);
ShowMessage(SS.ValueFromIndex[i]);
end;
finally
FreeAndNil(SS);
end;
end;
chhrsas 2012-04-18
  • 打赏
  • 举报
回复
这些容器都不支持遍历,头疼。
chhrsas 2012-04-18
  • 打赏
  • 举报
回复
找到了个对象,TStringHash,更合适。
funxu 2012-04-18
  • 打赏
  • 举报
回复
最简单的hash是TStrings,但是TStrings没有排序,所以IndexOf比较慢,而它的子类TStringList具有Stored属性,设置为True之后,IndexOf是用折半查找的,效率很高。
而且它也是可以保存object的哦
我看见佛 2012-04-18
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]
Delphi6?Dictionary?
不能用TStringList来实现吗?


Delphi(Pascal) code
var
SS: TStringList;
begin
SS := TStringList.Create;
try
SS.Add('111=abc');
SS.Add('112=def');
//……
Sho……
[/Quote]8错,据我所知很多人都是通过TStringList来存的
一剑飘雪 2012-04-18
  • 打赏
  • 举报
回复
还有数据量多的时候 哈希查找挺快的
一剑飘雪 2012-04-18
  • 打赏
  • 举报
回复
大量的数据为什么不用ThashedStringlist呢

var
SS: ThashedStringlist;
begin
SS := ThashedStringlist.Create;
try
SS.Add('111=abc');
SS.Add('112=def');
//……
ShowMessage(SS.Values['111']);
ShowMessage(SS.Values['112']);
finally
FreeAndNil(SS);
end;
end;
gobiz 2012-04-18
  • 打赏
  • 举报
回复
Delphi6?Dictionary?
不能用TStringList来实现吗?

var
SS: TStringList;
begin
SS := TStringList.Create;
try
SS.Add('111=abc');
SS.Add('112=def');
//……
ShowMessage(SS.Values['111']);
ShowMessage(SS.Values['112']);
finally
FreeAndNil(SS);
end;
end;

16,747

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 语言基础/算法/系统设计
社区管理员
  • 语言基础/算法/系统设计社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧