gpt4 book ai didi

delphi - 添加ini文件作为资源文件并从中读取

转载 作者:行者123 更新时间:2023-12-03 15:42:59 26 4
gpt4 key购买 nike

我想将一个 ini 文件作为资源文件添加到我的 delphi 项目中。

我知道你去哪里添加文件作为资源文件:

项目 > 资源和图像 > 添加

但是一旦完成,我还需要做什么才能从文件中读取内容?我以前没有使用过资源文件。

有关于该过程的任何文档吗?

谢谢

最佳答案

RTL 中的内置 INI 文件类在 System.IniFiles 单元中提供,要求 INI 文件是磁盘文件。因此,您可以将资源提取到磁盘并从那里读取它。

如果您不喜欢这个想法,那么您可以编写自己的 INI 文件解析器,该解析器在流而不是文件上运行。您可以使用TMemIniFile的代码来指导您。复制该代码并将 LoadValues 替换为从流而不是文件中读取的代码。或者,如果您仔细查找,那么您很可能会找到在流上运行的第三方 INI 解析器。

如果您准备考虑其他格式,那么您可以使用 JSON 而不是 INI。内置 JSON 解析器不需要输入数据驻留在磁盘上。它们可以对内存中的字符串进行操作,这听起来更方便。

上面这段文字其实是无稽之谈。感谢雷米指出这一点。您可以使用TMemIniFile 及其SetStrings 方法来解析不驻留在磁盘上的INI 内容。事情是这样的:

  • 将 INI 内容作为字符串放入资源中。
  • 将该资源加载到字符串变量中。
  • 创建一个 TStringList,并将字符串变量分配给字符串列表的 Text 属性。
  • 创建一个TMemIniFile
  • TMemIniFile 上调用 SetStrings,传递字符串列表。

或者:

  • 将 INI 内容作为字符串放入资源中。
  • 创建一个 TResourceStream 对象来读取该资源。
  • 创建一个 TStringList 对象。
  • 在传递资源流的字符串列表上调用LoadFromStream
  • 创建一个TMemIniFile
  • TMemIniFile 上调用 SetStrings,传递字符串列表。

说了这么多,您选择这样做似乎很奇怪。将配置信息作为一系列常量硬编码在一个单元中不是更简单吗?

关于delphi - 添加ini文件作为资源文件并从中读取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37697377/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com