问题标签 [tdictionary]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
3489 浏览

delphi - TDictionary 重复条目(Delphi)

我正在尝试将以下值添加到

我知道这是重复的,但如果你看第二个橙色,你会在最后看到一个空格。我认为德尔福削减了价值,但它不应该。

有谁知道这个问题的解决方案?

谢谢,

0 投票
2 回答
1538 浏览

delphi - 如何从逗号分隔的字符串对列表中填充 TDictionay?

我想要一个带有字符串列表的文本文件(例如,逗号与可用于自动替换的键和值分隔)并将每个键值对存储在TDictionary<string, string>. 如何填充字典?

0 投票
1 回答
3373 浏览

delphi - TDictionary 保存到文件

我有很多文件(大约 160 000 个),我需要有关文件中单个单词位置的信息(全文)。所以我像这样使用字典:

现在我知道 WORD1 在 FILE1、FILE3 和 FILE100 以及每个文件 <1,3,5>、<2,8,35> 等中的位置。我可以填充它,我可以使用它 - 它非常快。但我不知道如何有效地将字典存储到文件中。

编辑:有效 - 我的意思是文件的快速和小尺寸

0 投票
1 回答
885 浏览

delphi - 链接器消除了 TDictionary 上的 GetItem

我正在使用TDictionary. <string, string>但是由于某种原因,链接器决定我不想从中获取项目。

我有以下代码:

FFieldNames是一个TDictionary<string, string>。在第 2 行 ( if FFieldNames[Field] = '' then) 中,它会引发“找不到文件”异常。添加FFieldNames[Field]到我的手表告诉我要调用的函数 {System.Generics.Collections}TDictionary.GetItem 已被链接器消除

有人在这里问过类似的问题,关于如何避免链接器在调试期间消除功能。由此我收集到,编译器/链接器假定我没有使用它。有人建议——在谈话中——我应该尝试更多地使用它。

所以我创建了以下代码:

其中S和是Name字符串V。这是来自FFieldNames填充数据的代码。 V的唯一目的是获取刚刚插入的S;它什么也不做。

奇怪的是,虽然调试器告诉我同样的事情(GetItem即被淘汰),V但它确实被设置为预期值。但它不在我的TSheet.GetFieldName功能中。:|

我错过了什么?

0 投票
1 回答
481 浏览

delphi - 将 TDictionary 排序为数组后处理的正确方法

我有一个像

填充后,我需要对结果进行排序。我正在这样做

这一切都按预期工作。我的问题是如何处理 TDictionary 和 TArray 而不会泄漏?目前我只是在做

0 投票
1 回答
3967 浏览

delphi - Delphi中的类字段(静态字段)

有一个类 TPerson。众所周知,FSecondName 对每个对象都是唯一的。

如何添加类字段(如 C# 中的静态字段) Persons: TDictionary (String, TPerson),其中键是 SecondName,值是类 TPerson 的对象。

谢谢!

0 投票
2 回答
3090 浏览

arrays - 默认创建一个TDictionary的常量数组

我想TDictionary在 Delphi 项目中使用 a 。但是我有一个问题,我怎样才能创建一个TDictionary默认值的常量数组?

例如,我想为字典分配 4 个项目,例如波纹管代码(用于常量数组TItem):

有什么办法可以做这项工作TDictionary吗?我想创建一个Dic(但是)的常量数组,例如波纹管结构。

有人对我有什么建议吗?(如果我的英语很差,请见谅!)

0 投票
1 回答
1105 浏览

delphi - 访问 TDictionary 项目

我正在使用 embarcadero 示例测试 TDictionary( http://docwiki.embarcadero.com/CodeExamples/XE5/en/Generics_Collections_TDictionary_%28Delphi%29

创建和添加键和值没有问题。但是,当我尝试使用键值“伦敦”访问表时:

(1) Dictionary.Items['London'].Country -> 给出正确的值 "Dictionary.Items['London'].Country'

(2) 在 Edit1.Text 中输入 'London',然后 Dictionary.Items[Edit1.Text].Country -> 给出错误“找不到项目”?

有人可以解释一下吗?

提前致谢。

//////////////////////////////////示例代码

0 投票
1 回答
1092 浏览

class - Delphi - 对 TDictionary 中的内存分配感到困惑

在 Delphi XE6 中,我有一个名为 WordDict 的 TDictionary,它包含 TWordRec 的实例。定义是:

当我创建和加载字典时......

我遇到了内存泄漏,并且使用 AQTime,它显示我的 TWordRec 的每次出现都是“泄漏”内存。如果我将 WordDict 条目创建为 TWordRec,加载后如何处理它们?我要处理它们吗,因为这不只是字典中指向实际对象的指针吗?

我是否在加载后立即处理 TWord?只有当应用程序关闭时,我才从我的字典中删除所有条目吗?我显然不明白为什么我在 TWordRec 上出现内存泄漏,所以我不知道如何解决它......

谢谢!

0 投票
1 回答
31844 浏览

delphi - Delphi TDictionary 迭代

我有一个存储一些键值对的函数,当我迭代它们时,我得到了两次这个错误:[dcc32 Error] App.pas(137): E2149 Class does not have a default property。这是我的代码的一部分:

我需要从字典中的每个项目中收集信息。我该如何解决?