3

我想在 Delphi 项目中存储和加载各种程序数据。该数据范围从简单的字符串到更复杂的重复配置对象数据。

众所周知,ini 文件提供了一种快速简便的方式来存储程序数据,但仅限于键值表示。

当涉及到这样的需求时,XML 通常是首选武器,但我想知道是否有 XML 的替代品。

最近我发现了 Delphi 的超级对象,它似乎比 XML 更容易处理。对于这种“非网络任务”使用 JSON 有什么要说的吗?

您是否知道在 Delphi 中支持数据存储和以纯文本(如 ini、xml、json)加载的其他选项?

4

2 回答 2

6

事实上,您选择哪种存储格式(ini、xml、json 等)都没有关系。构建一个满足您所有需求的抽象配置类,然后考虑具体类和具体存储格式,并根据实现的容易程度和人类可读性来决定

在某些情况下,您还希望拥有不同的配置方面(全局、机器、用户)。

使用您的配置类,您可以轻松地将它们混合在一起(如果不是用户定义,则使用全局),还可以混合存储格式(数据库中的全局配置,注册表中的机器配置,文件中的用户配置)。

于 2012-11-16T14:08:12.300 回答
3

与单元INI中的内置TIniFileTMemIniFile类结合使用的好旧文件对我来说非常有用IniFiles

INI 文件的好处;

  1. 不是二进制的。
  2. 比注册表设置更容易在机器之间移动。
  3. 易于检查和查看。
  4. 与 XML 不同,它简单易读

  5. INI 文件很容易手动或使用工具修改,并且几乎是防弹的,而制作格式不正确的 JSON 或 XML 很容易,完全不可读,很难做的不仅仅是“损坏 INI 文件的一部分”。简单取胜。

缺点:

  1. 与 XML 和 Registry 不同,它或多或少是“两个级别”,即部分和项目。

  2. TMemIniFile不会以任何可控的方式对结果进行排序。我经常希望我可以控制我的ini文件中项目的顺序,如果它们是由人类生成的,我希望保留顺序,而TMemIniFile不保留顺序,因此我发现我爱TMemIniFile不如爱平淡无奇TIniFile

于 2012-11-16T20:11:30.690 回答